changeset 109252:64f9d1b2b73b

Fix finding revisions in for renamed files in vc-annotate. * lisp/vc.el (vc-find-revision): Add an optional argument for the VC backend. Use it when non-nil. * lisp/vc-annotate.el (vc-annotate-find-revision-at-line): Pass the VC backend to vc-find-revision. (Bug#6487)
author Dan Nicolaescu <dann@ics.uci.edu>
date Mon, 21 Jun 2010 18:26:30 -0700
parents e60e30383efd
children a41a9e7bfad8
files lisp/ChangeLog lisp/vc-annotate.el lisp/vc.el
diffstat 3 files changed, 15 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Mon Jun 21 13:03:30 2010 -0700
+++ b/lisp/ChangeLog	Mon Jun 21 18:26:30 2010 -0700
@@ -1,3 +1,11 @@
+2010-06-21  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	Fix finding revisions in for renamed files in vc-annotate.
+	* vc.el (vc-find-revision): Add an optional argument for
+	the VC backend.  Use it when non-nil.
+	* vc-annotate.el (vc-annotate-find-revision-at-line): Pass the VC
+	backend to vc-find-revision.  (Bug#6487)
+
 2010-06-21  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	Fix reading file names in Git annotate buffers.
--- a/lisp/vc-annotate.el	Mon Jun 21 13:03:30 2010 -0700
+++ b/lisp/vc-annotate.el	Mon Jun 21 18:26:30 2010 -0700
@@ -461,7 +461,7 @@
       (if (not rev-at-line)
 	  (message "Cannot extract revision number from the current line")
 	(switch-to-buffer-other-window
-	 (vc-find-revision (cdr rev-at-line) (car rev-at-line)))))))
+	 (vc-find-revision (cdr rev-at-line) (car rev-at-line) vc-annotate-backend))))))
 
 (defun vc-annotate-revision-previous-to-line ()
   "Visit the annotation of the revision before the revision at line."
--- a/lisp/vc.el	Mon Jun 21 13:03:30 2010 -0700
+++ b/lisp/vc.el	Mon Jun 21 18:26:30 2010 -0700
@@ -1655,8 +1655,9 @@
 		    rev)))
     (switch-to-buffer-other-window (vc-find-revision file revision))))
 
-(defun vc-find-revision (file revision)
-  "Read REVISION of FILE into a buffer and return the buffer."
+(defun vc-find-revision (file revision &optional backend)
+  "Read REVISION of FILE into a buffer and return the buffer.
+Use BACKEND as the VC backend if specified."
   (let ((automatic-backup (vc-version-backup-file-name file revision))
 	(filebuf (or (get-file-buffer file) (current-buffer)))
         (filename (vc-version-backup-file-name file revision 'manual)))
@@ -1674,7 +1675,9 @@
 		      ;; Change buffer to get local value of
 		      ;; vc-checkout-switches.
 		      (with-current-buffer filebuf
-			(vc-call find-revision file revision outbuf))))
+			(if backend
+			    (vc-call-backend backend 'find-revision file revision outbuf)
+			  (vc-call find-revision file revision outbuf)))))
 		  (setq failed nil))
 	      (when (and failed (file-exists-p filename))
 		(delete-file filename))))