From 8228a275dd54898cc8027a34ba4970014f4af4b0 Mon Sep 17 00:00:00 2001 From: "Mark A. Hershberger" Date: Fri, 5 Feb 2010 14:20:17 -0500 Subject: [PATCH] add primative implementation of vc-svn-revision-table --- lisp/ChangeLog | 4 ++++ lisp/vc-svn.el | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9013caf2026..6982e488b44 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -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 --git a/lisp/vc-svn.el b/lisp/vc-svn.el index 9f992fdd1c8..6883556f249 100644 --- a/lisp/vc-svn.el +++ b/lisp/vc-svn.el @@ -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 @@ information about FILENAME and return its status." (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 -- 2.39.2