From: Dan Nicolaescu Date: Tue, 22 Jun 2010 01:26:30 +0000 (-0700) Subject: Fix finding revisions in for renamed files in vc-annotate. X-Git-Tag: emacs-pretest-23.2.90~139^2~110 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=04ec0963f662150746408ff3f9c085240f83bb54;p=emacs.git 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) --- 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))))