diff lisp/vc-svn.el @ 106472:6e0f1038bc44

Support showing a single log entry from vc-annotate. * vc.el (print-log): Add a new argument: START-REVISION. (vc-print-log-internal): Add a new optional argument and pass it to the backend. (vc-print-log, vc-print-root-log): Adjust callers. * vc-annotate.el (vc-annotate-show-log-revision-at-line): If a buffer already displays the requested log entry, use it. Otherwise display only the log entry in question. * vc-svn.el (vc-svn-print-log): * vc-mtn.el (log-view-file-re): * vc-hg.el (vc-hg-state): * vc-git.el (vc-git-print-log): Add support for new argument START-REVISION. (vc-git-show-log-entry): Return t on success. * vc-bzr.el (vc-bzr-print-log): Add support new argument START-REVISION. (vc-bzr-show-log-entry): Return t on success. * vc-rcs.el (vc-rcs-print-log): * vc-sccs.el (vc-sccs-print-log): * vc-cvs.el (vc-cvs-print-log): Add new argument, ignore it.
author Dan Nicolaescu <dann@ics.uci.edu>
date Mon, 07 Dec 2009 09:02:11 +0000
parents 2df31b09d293
children 3ecd902dead9
line wrap: on
line diff
--- a/lisp/vc-svn.el	Mon Dec 07 06:56:40 2009 +0000
+++ b/lisp/vc-svn.el	Mon Dec 07 09:02:11 2009 +0000
@@ -462,7 +462,7 @@
   (require 'add-log)
   (set (make-local-variable 'log-view-per-file-logs) nil))
 
-(defun vc-svn-print-log (files buffer &optional shortlog limit)
+(defun vc-svn-print-log (files buffer &optional shortlog start-revision limit)
   "Get change log(s) associated with FILES."
   (save-current-buffer
     (vc-setup-buffer buffer)
@@ -478,15 +478,22 @@
 		   ;; (if (and (= (length files) 1) (vc-stay-local-p file 'SVN)) 'async 0)
 		   (list file)
 		   "log"
-		   ;; By default Subversion only shows the log up to the
-		   ;; working revision, whereas we also want the log of the
-		   ;; subsequent commits.  At least that's what the
-		   ;; vc-cvs.el code does.
-		   "-rHEAD:0"
-		   (when limit (list "-l" (format "%s" limit)))))
+		   (append
+		    (list
+		     (if start-revision
+			 (format "-r%s" start-revision)
+		       ;; By default Subversion only shows the log up to the
+		       ;; working revision, whereas we also want the log of the
+		       ;; subsequent commits.  At least that's what the
+		       ;; vc-cvs.el code does.
+		       "-rHEAD:0"))
+		    (when limit (list "-l" (format "%s" limit))))))
 	;; Dump log for the entire directory.
-	(apply 'vc-svn-command buffer 0 nil "log" "-rHEAD:0"
-	       (when limit (list "-l" (format "%s" limit))))))))
+	(apply 'vc-svn-command buffer 0 nil "log"
+	       (append
+		(list
+		 (if start-revision (format "-r%s" start-revision) "-rHEAD:0"))
+		(when limit (list "-l" (format "%s" limit)))))))))
 
 (defun vc-svn-diff (files &optional oldvers newvers buffer)
   "Get a difference report using SVN between two revisions of fileset FILES."