summaryrefslogtreecommitdiff
path: root/admin/gitmerge.el
diff options
context:
space:
mode:
Diffstat (limited to 'admin/gitmerge.el')
-rw-r--r--admin/gitmerge.el23
1 files changed, 14 insertions, 9 deletions
diff --git a/admin/gitmerge.el b/admin/gitmerge.el
index b74c128ae57..ca2886370a1 100644
--- a/admin/gitmerge.el
+++ b/admin/gitmerge.el
@@ -67,7 +67,7 @@ re-?generate\\|bump version\\|from trunk\\|Auto-commit"
'((t (:strike-through t)))
"Face for skipped commits.")
-(defconst gitmerge-default-branch "origin/emacs-24"
+(defconst gitmerge-default-branch "origin/emacs-25"
"Default for branch that should be merged.")
(defconst gitmerge-buffer "*gitmerge*"
@@ -171,9 +171,10 @@ re-?generate\\|bump version\\|from trunk\\|Auto-commit"
(defun gitmerge-highlight-skip-regexp ()
"Highlight strings that match `gitmerge-skip-regexp'."
(save-excursion
- (while (re-search-forward gitmerge-skip-regexp nil t)
- (put-text-property (match-beginning 0) (match-end 0)
- 'face 'font-lock-warning-face))))
+ (let ((case-fold-search t))
+ (while (re-search-forward gitmerge-skip-regexp nil t)
+ (put-text-property (match-beginning 0) (match-end 0)
+ 'face 'font-lock-warning-face)))))
(defun gitmerge-missing (from)
"Return the list of revisions that need to be merged from FROM.
@@ -185,8 +186,8 @@ if and why this commit should be skipped."
;; Go through the log and remember all commits that match
;; `gitmerge-skip-regexp' or are marked by --cherry-mark.
(with-temp-buffer
- (call-process "git" nil t nil "log" "--cherry-mark" from
- (concat "^" (car (vc-git-branches))))
+ (call-process "git" nil t nil "log" "--cherry-mark" "--left-only"
+ (concat from "..." (car (vc-git-branches))))
(goto-char (point-max))
(while (re-search-backward "^commit \\(.+\\) \\([0-9a-f]+\\).*" nil t)
(let ((cherrymark (match-string 1))
@@ -208,9 +209,9 @@ if and why this commit should be skipped."
"Create the buffer for choosing commits."
(with-current-buffer (get-buffer-create gitmerge-buffer)
(erase-buffer)
- (call-process "git" nil t nil "log"
+ (call-process "git" nil t nil "log" "--left-only"
"--pretty=format:%h %<(20,trunc) %an: %<(100,trunc) %s"
- from (concat "^" (car (vc-git-branches))))
+ (concat from "..." (car (vc-git-branches))))
(goto-char (point-min))
(while (looking-at "^\\([a-f0-9]+\\)")
(let ((skipreason (gitmerge-skip-commit-p (match-string 1) commits)))
@@ -291,7 +292,7 @@ Returns non-nil if conflicts remain."
))
;; Try to resolve the conflicts.
(cond
- ((member file '("configure" "lisp/ldefs-boot.el"
+ ((member file '("configure" "lisp/ldefs-boot-auto.el"
"lisp/emacs-lisp/cl-loaddefs.el"))
;; We are in the file's buffer, so names are relative.
(call-process "git" nil t nil "checkout" "--"
@@ -330,6 +331,10 @@ is nil, only the single commit BEG is merged."
(if end (list (concat beg "~.." end))
`("-1" ,beg)))
(insert "\n")
+ ;; Truncate to 72 chars so that the resulting ChangeLog line fits in 80.
+ (goto-char (point-min))
+ (while (re-search-forward "^\\(.\\{69\\}\\).\\{4,\\}" nil t)
+ (replace-match "\\1..."))
(buffer-string)))
(defun gitmerge-apply (missing from)