]> code.delx.au - gnu-emacs/commitdiff
Compute a better commit message for merges
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 22 Mar 2016 23:42:28 +0000 (16:42 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 22 Mar 2016 23:42:42 +0000 (16:42 -0700)
Problem reported by David Engster in:
http://lists.gnu.org/archive/html/emacs-devel/2016-03/msg01270.html
* admin/gitmerge.el (gitmerge-commit-message):
Truncate the computed commit message to at most 72 characters per line.
(gitmerge-maybe-resume): Don’t use "-" as the commit message for
merges; use the computed commit message instead.

admin/gitmerge.el

index 74e6f80487b7013d9253983c17b204df7d53ae4a..6a52f7a60a913e6fd0c24df5af4c8ec5e7fe10e1 100644 (file)
@@ -331,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)
@@ -432,14 +436,8 @@ If so, add no longer conflicted files and commit."
        (when mergehead
          (with-current-buffer (get-buffer-create gitmerge-output-buffer)
            (erase-buffer)
-            ;; FIXME: We add "-m-" because the default commit message
-            ;; apparently tickles our commit hook:
-            ;;    Line longer than 78 characters in commit message
-            ;;    Line longer than 78 characters in commit message
-            ;;    Line longer than 78 characters in commit message
-            ;;    Commit aborted; please see the file CONTRIBUTE
            (unless (zerop (call-process "git" nil t nil
-                                        "commit" "--no-edit" "-m-"))
+                                        "commit" "--no-edit"))
              (error "Git error during merge - fix it manually"))))
        ;; Successfully resumed.
        t))))