# HG changeset patch # User Mark A. Hershberger # Date 1265397617 18000 # Node ID d1489c6b5705b8000f34c0939a6379c362084cc2 # Parent 7e87cb80b24ce5c4d6bdb811b6788f13000aaa21 add primative implementation of vc-svn-revision-table diff -r 7e87cb80b24c -r d1489c6b5705 lisp/ChangeLog --- a/lisp/ChangeLog Fri Feb 05 14:09:38 2010 -0500 +++ b/lisp/ChangeLog Fri Feb 05 14:20:17 2010 -0500 @@ -1,3 +1,7 @@ +2010-02-05 Mark A. Hershberger + + * vc-svn.el (vc-svn-revision-table): New function. + 2010-02-05 Michael Albinus * net/ange-ftp.el (ange-ftp-insert-directory): diff -r 7e87cb80b24c -r d1489c6b5705 lisp/vc-svn.el --- a/lisp/vc-svn.el Fri Feb 05 14:09:38 2010 -0500 +++ b/lisp/vc-svn.el Fri Feb 05 14:20:17 2010 -0500 @@ -31,6 +31,10 @@ (eval-when-compile (require 'vc)) +;; Clear up the cache to force vc-call to check again and discover +;; new functions when we reload this file. +(put 'SVN 'vc-functions nil) + ;;; ;;; Customization options ;;; @@ -722,6 +726,21 @@ (beginning-of-line) (if (looking-at vc-svn-annotate-re) (match-string 1)))) +(defun vc-svn-revision-table (files) + (let ((vc-svn-revisions '())) + (with-current-buffer "*vc*" + (vc-svn-command nil 0 files "log" "-q") + (goto-char (point-min)) + (forward-line) + (let ((start (point-min)) + (loglines (buffer-substring-no-properties (point-min) + (point-max)))) + (while (string-match "^r\\([0-9]+\\) " loglines) + (push (match-string 1 loglines) vc-svn-revisions) + (setq start (+ start (match-end 0))) + (setq loglines (buffer-substring-no-properties start (point-max))))) + vc-svn-revisions))) + (provide 'vc-svn) ;; arch-tag: 02f10c68-2b4d-453a-90fc-1eee6cfb268d