]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix vc-annotate-show-log-revision-at-line
authorDmitry Gutov <dgutov@yandex.ru>
Thu, 23 Sep 2021 11:53:31 +0000 (14:53 +0300)
committerDmitry Gutov <dgutov@yandex.ru>
Thu, 23 Sep 2021 11:53:46 +0000 (14:53 +0300)
* lisp/vc/vc-annotate.el (vc-annotate-show-log-revision-at-line):
Stop from being affected by 'vc-git-print-log-follow'.

* lisp/vc/vc-git.el (vc-git-print-log-follow):
Mention caveats in a comment.

lisp/vc/vc-annotate.el
lisp/vc/vc-git.el

index 82531f742e4a24142ebdfb7fa3ab8109680feb57..45bb17749bcbbd2fd646b8fc9941559337e2f3a9 100644 (file)
@@ -545,6 +545,7 @@ Return a cons (REV . FILENAME)."
 
 (defvar log-view-vc-backend)
 (defvar log-view-vc-fileset)
+(defvar vc-git-print-log-follow)
 
 (defun vc-annotate-show-log-revision-at-line ()
   "Visit the log of the revision at line.
@@ -559,6 +560,8 @@ the file in question, search for the log entry required and move point."
          (message "Cannot extract revision number from the current line")
        (let ((backend vc-annotate-backend)
              (log-buf (get-buffer "*vc-change-log*"))
+              ;; No need to follow renames: we specify the historical file name.
+              vc-git-print-log-follow
              pos)
          (if (and
               log-buf
index 8332600c6905ee99d20fd37edd663ac002f9486e..eca8d547a90e78d18cc729c7e9cee7b3f22c2c43 100644 (file)
@@ -1147,6 +1147,14 @@ This prompts for a branch to merge from."
 
 (autoload 'vc-setup-buffer "vc-dispatcher")
 
+;; It's a weird option due to how Git handles '--follow', and it can
+;; hide certain (usually merge) commits in the `vc-print-log' buffers.
+;;
+;; (setq vc-git-log-switches '("-m")) can fix that, but at the cost of
+;; duplicating many merge commits in the log.
+;;
+;; Long explanation here:
+;; https://stackoverflow.com/questions/46487476/git-log-follow-graph-skips-commits
 (defcustom vc-git-print-log-follow nil
   "If true, follow renames in Git logs for a single file."
   :type 'boolean