emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r114120: * lisp/vc/vc-git.el (vc-git-checkin): Make


From: Stefan Monnier
Subject: [Emacs-diffs] trunk r114120: * lisp/vc/vc-git.el (vc-git-checkin): Make it possible to commit a merge.
Date: Tue, 03 Sep 2013 18:28:11 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 114120
revision-id: address@hidden
parent: address@hidden
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Tue 2013-09-03 14:28:06 -0400
message:
  * lisp/vc/vc-git.el (vc-git-checkin): Make it possible to commit a merge.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/vc/vc-git.el              vcgit.el-20091113204419-o5vbwnq5f7feedwu-5070
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-09-03 18:21:41 +0000
+++ b/lisp/ChangeLog    2013-09-03 18:28:06 +0000
@@ -1,5 +1,7 @@
 2013-09-03  Stefan Monnier  <address@hidden>
 
+       * vc/vc-git.el (vc-git-checkin): Make it possible to commit a merge.
+
        * emacs-lisp/package.el (package-activate-1): Don't let a missing
        <pkg>-autoloads.el file stop us.
 

=== modified file 'lisp/vc/vc-git.el'
--- a/lisp/vc/vc-git.el 2013-08-04 02:55:45 +0000
+++ b/lisp/vc/vc-git.el 2013-09-03 18:28:06 +0000
@@ -649,11 +649,18 @@
 It is based on `log-edit-mode', and has Git-specific extensions.")
 
 (defun vc-git-checkin (files _rev comment)
-  (let ((coding-system-for-write vc-git-commits-coding-system))
+  (let* ((file1 (or (car files) default-directory))
+         (root (vc-git-root file1))
+         (default-directory (expand-file-name root))
+         (only (or (cdr files)
+                   (not (equal root (abbreviate-file-name file1)))))
+         (coding-system-for-write vc-git-commits-coding-system))
     (cl-flet ((boolean-arg-fn
                (argument)
                (lambda (value) (when (equal value "yes") (list argument)))))
-      (apply 'vc-git-command nil 0 files
+      ;; When operating on the whole tree, better pass nil than ".", since "."
+      ;; fails when we're committing a merge.
+      (apply 'vc-git-command nil 0 (if only files)
              (nconc (list "commit" "-m")
                     (log-edit-extract-headers
                      `(("Author" . "--author")
@@ -661,7 +668,7 @@
                        ("Amend" . ,(boolean-arg-fn "--amend"))
                        ("Sign-Off" . ,(boolean-arg-fn "--signoff")))
                      comment)
-                    (list "--only" "--"))))))
+                    (if only (list "--only" "--")))))))
 
 (defun vc-git-find-revision (file rev buffer)
   (let* (process-file-side-effects


reply via email to

[Prev in Thread] Current Thread [Next in Thread]