From: Stefan Monnier Date: Tue, 3 Sep 2013 18:28:06 +0000 (-0400) Subject: * lisp/vc/vc-git.el (vc-git-checkin): Make it possible to commit a merge. X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~1686^2~3 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=724f5e41b6997252209ae3c0f2d04f3d5107b38c;p=emacs.git * lisp/vc/vc-git.el (vc-git-checkin): Make it possible to commit a merge. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d71087f8302..ad5baad3ef0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,7 @@ 2013-09-03 Stefan Monnier + * 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 -autoloads.el file stop us. diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 472c42840af..e37bfe75dfa 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -649,11 +649,18 @@ If toggling on, also insert its message into the buffer." 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 @@ It is based on `log-edit-mode', and has Git-specific extensions.") ("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