Mercurial > emacs
changeset 107095:d1489c6b5705
add primative implementation of vc-svn-revision-table
author | Mark A. Hershberger <mah@everybody.org> |
---|---|
date | Fri, 05 Feb 2010 14:20:17 -0500 |
parents | 7e87cb80b24c |
children | 31db1aaeac2d |
files | lisp/ChangeLog lisp/vc-svn.el |
diffstat | 2 files changed, 23 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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 <mah@everybody.org> + + * vc-svn.el (vc-svn-revision-table): New function. + 2010-02-05 Michael Albinus <michael.albinus@gmx.de> * net/ange-ftp.el (ange-ftp-insert-directory):
--- 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