Subject: 28.0.50; vc-print-branch-log data loss

From: Juri Linkov <[email-masked]>
Date: Fri, 21 Feb 2020 01:32:35 +0200

Tags: patch

Accidentally I noticed that vc-print-branch-log prints a narrower log
than it should.  I don't remember any damage from this data loss
but this is not the right thing to do - by default it should show logs
from the repository root, not logs limited to a subdirectory when
this command happens to be called from a subdirectory.

Am I correct to expect that vc-print-branch-log should print
log from branch's root like vc-print-root-log does, and
not from a subdirectory like vc-print-log does?

diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index f7d651fac6..13d60b6fcf 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -2559,9 +2590,11 @@ vc-print-branch-log
     (vc-read-revision "Branch to log: ")))
   (when (equal branch "")
     (error "No branch specified"))
-  (vc-print-log-internal (vc-responsible-backend default-directory)
-                         (list default-directory) branch t
-                         (when (> vc-log-show-limit 0) vc-log-show-limit)))
+  (let* ((backend (vc-responsible-backend default-directory))
+         (rootdir (vc-call-backend backend 'root default-directory)))
+    (vc-print-log-internal backend
+                           (list rootdir) branch t
+                           (when (> vc-log-show-limit 0) vc-log-show-limit))))
 
 ;;;###autoload
 (defun vc-log-incoming (&optional remote-location)