From 04ec0963f662150746408ff3f9c085240f83bb54 Mon Sep 17 00:00:00 2001 From: Dan Nicolaescu Date: Mon, 21 Jun 2010 18:26:30 -0700 Subject: [PATCH] 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) --- lisp/ChangeLog | 8 ++++++++ lisp/vc-annotate.el | 2 +- lisp/vc.el | 9 ++++++--- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9cb50c3e98a..7474fcf866f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2010-06-21 Dan Nicolaescu + + 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 Fix reading file names in Git annotate buffers. diff --git a/lisp/vc-annotate.el b/lisp/vc-annotate.el index 437081293cb..c372cb9922e 100644 --- a/lisp/vc-annotate.el +++ b/lisp/vc-annotate.el @@ -461,7 +461,7 @@ Return a cons (REV . FILENAME)." (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." diff --git a/lisp/vc.el b/lisp/vc.el index e29603fcc1c..194c2a08983 100644 --- a/lisp/vc.el +++ b/lisp/vc.el @@ -1655,8 +1655,9 @@ If `F.~REV~' already exists, use it instead of checking it out again." 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 @@ If `F.~REV~' already exists, use it instead of checking it out again." ;; 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)))) -- 2.39.2