]> git.eshelyaron.com Git - emacs.git/commitdiff
(vc-print-log-setup-buttons): Start "previous" history with specified revision
authorDmitry Gutov <dmitry@gutov.dev>
Fri, 15 Dec 2023 23:48:29 +0000 (01:48 +0200)
committerDmitry Gutov <dmitry@gutov.dev>
Fri, 15 Dec 2023 23:48:29 +0000 (01:48 +0200)
* lisp/vc/vc-git.el (vc-git-file-name-changes-switches): Remove
the comment above the option.  Seems unnecessary now.

* lisp/vc/vc.el (vc-print-log-setup-buttons): Start the "previous"
change history buffer with the specified revision, rather than
have the sentinel jump to it.  Apparently in some cases the
history of the old name can't be found.  In others, the log just
shows faster.  But note the caveat described in the second new
comment (bug#55871).

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

index fa1f14b65bbd38a2c8397ba74c3a59e1fbf103d1..f6e8e1b7042923c834d9c6ab8443043a03799da2 100644 (file)
@@ -153,8 +153,6 @@ comparing changes.  See Man page `git-blame' for more."
                  (repeat :tag "Argument List" :value ("") string))
   :version "30.1")
 
-;; XXX: (setq vc-git-log-switches '("--simplify-merges")) can also
-;; create fuller history when using this feature.  Not sure why.
 (defcustom vc-git-file-name-changes-switches '("-M" "-C")
   "String or list of string to pass to Git when finding previous names.
 
index 1234424a8d9cb99dbc108d1b6a30a1a52ae2d4d6..0f74449c92dfa71629ba2f3558af7e97c9b6a76f 100644 (file)
@@ -2709,6 +2709,8 @@ LIMIT is nil, or if PL-RETURN is `limit-unsupported'."
       (if (< entries limit)
           ;; The log has been printed in full.  Perhaps it started
           ;; with a copy or rename?
+          ;; FIXME: We'd probably still want this button even when
+          ;; vc-log-show-limit is customized to 0 (should be rare).
           (let* ((last-revision (log-view-current-tag (point-max)))
                  ;; XXX: Could skip this when vc-git-print-log-follow = t.
                  (name-changes
@@ -2743,7 +2745,14 @@ LIMIT is nil, or if PL-RETURN is `limit-unsupported'."
                            (with-current-buffer vc-parent-buffer
                              ;; To set up parent buffer in the new viewer.
                              (vc-print-log-internal backend old-names
-                                                    last-revision nil limit))))
+                                                    last-revision t limit))))
+               ;; XXX: Showing the full history for OLD-NAMES (with
+               ;; IS-START-REVISION=nil) can be better sometimes
+               ;; (e.g. when some edits still occurred after a rename
+               ;; -- multiple branches scenario), but it also can hurt
+               ;; in others because of Git's automatic history
+               ;; simplification: as a result, the logs for some
+               ;; use-package's files before merge could not be found.
                'help-echo
                "Show the log for the file name(s) before the rename")))
         ;; Perhaps there are more entries in the log.