diff options
Diffstat (limited to 'admin/gitmerge.el')
-rw-r--r-- | admin/gitmerge.el | 23 |
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) |