]> git.eshelyaron.com Git - emacs.git/commitdiff
add `vc-git-print-log-follow' and use it in `vc-git-print-log'
authorSam Steingold <sds@gnu.org>
Tue, 15 Nov 2016 04:37:33 +0000 (23:37 -0500)
committerSam Steingold <sds@gnu.org>
Tue, 15 Nov 2016 04:37:33 +0000 (23:37 -0500)
When `vc-git-print-log-follow' is true and all files are
non-directory, pass "--follow" to "git log".
This works around bug#8756 and bug#16422.

lisp/vc/vc-git.el

index 6d451be268810d93cbabc33f32b8d6dea096c8cc..9df581dda5bb83c3f4d39b3f85af3b0584d84233 100644 (file)
@@ -886,6 +886,11 @@ This prompts for a branch to merge from."
 
 (autoload 'vc-setup-buffer "vc-dispatcher")
 
+(defcustom vc-git-print-log-follow nil
+  "If true, follow renames in Git logs for files."
+  :type 'boolean
+  :version "26.1")
+
 (defun vc-git-print-log (files buffer &optional shortlog start-revision limit)
   "Print commit log associated with FILES into specified BUFFER.
 If SHORTLOG is non-nil, use a short format based on `vc-git-root-log-format'.
@@ -905,7 +910,13 @@ If LIMIT is non-nil, show no more than this many entries."
        (apply 'vc-git-command buffer
               'async files
               (append
-               '("log" "--no-color" "--follow")
+               '("log" "--no-color")
+                (when (and vc-git-print-log-follow
+                           (not (cl-some #'file-directory-p files)))
+                  ;; "--follow" on directories is broken
+                  ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=8756
+                  ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=16422
+                  (list "--follow"))
                (when shortlog
                  `("--graph" "--decorate" "--date=short"
                     ,(format "--pretty=tformat:%s"