Mercurial > emacs
changeset 58929:43248e1430b6
(vc-svn-repository-hostname): Adjust to new format.
Reported by Ville Skytt?scop@xemacs.org>.
(vc-svn-annotate-current-time, vc-svn-annotate-time-of-rev)
(vc-svn-annotate-time, vc-svn-annotate-extract-revision-at-line)
(vc-svn-annotate-command, vc-svn-annotate-re): Support for svn annotate.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Mon, 13 Dec 2004 06:30:40 +0000 |
parents | 4a354500d0f8 |
children | 8bc2f862fb33 |
files | lisp/ChangeLog lisp/vc-svn.el |
diffstat | 2 files changed, 39 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Mon Dec 13 05:28:11 2004 +0000 +++ b/lisp/ChangeLog Mon Dec 13 06:30:40 2004 +0000 @@ -1,3 +1,11 @@ +2004-12-13 Stefan Monnier <monnier@iro.umontreal.ca> + + * vc-svn.el (vc-svn-repository-hostname): Adjust to new format. + Reported by Ville Skytt,Ad(B <scop@xemacs.org>. + (vc-svn-annotate-current-time, vc-svn-annotate-time-of-rev) + (vc-svn-annotate-time, vc-svn-annotate-extract-revision-at-line) + (vc-svn-annotate-command, vc-svn-annotate-re): Support for svn annotate. + 2004-12-12 Juri Linkov <juri@jurta.org> * files.el (find-file-other-window, find-file-other-frame):
--- a/lisp/vc-svn.el Mon Dec 13 05:28:11 2004 +0000 +++ b/lisp/vc-svn.el Mon Dec 13 06:30:40 2004 +0000 @@ -447,10 +447,14 @@ (vc-insert-file (expand-file-name ".svn/entries" dirname))) (goto-char (point-min)) (when (re-search-forward - (concat "name=\"svn:this_dir\"[\n\t ]*" - "\\([-a-z]+=\"[^\"]*\"[\n\t ]*\\)*?" + ;; Old `svn' used name="svn:dir", newer use just name="". + (concat "name=\"\\(?:svn:this_dir\\)?\"[\n\t ]*" + "\\(?:[-a-z]+=\"[^\"]*\"[\n\t ]*\\)*?" "url=\"\\([^\"]+\\)\"") nil t) - (match-string 2)))) + ;; This is not a hostname but a URL. This may actually be considered + ;; as a feature since it allows vc-svn-stay-local to specify different + ;; behavior for different modules on the same server. + (match-string 1)))) (defun vc-svn-parse-status (localp) "Parse output of \"svn status\" command in the current buffer. @@ -505,6 +509,30 @@ (and (string-match "^[0-9]" tag) (not (string-match "[^0-9]" tag)))) +;; Support for `svn annotate' + +(defun vc-svn-annotate-command (file buf &optional rev) + (vc-svn-command buf 0 file "annotate" (if rev (concat "-r" rev)))) + +(defun vc-svn-annotate-time-of-rev (rev) + ;; Arbitrarily assume 10 commmits per day. + (/ (string-to-number rev) 10.0)) + +(defun vc-svn-annotate-current-time () + (vc-svn-annotate-time-of-rev vc-annotate-parent-rev)) + +(defconst vc-svn-annotate-re "[ \t]*\\([0-9]+\\)[ \t]+[^\t ]+ ") + +(defun vc-svn-annotate-time () + (when (looking-at vc-svn-annotate-re) + (goto-char (match-end 0)) + (vc-svn-annotate-time-of-rev (match-string 1)))) + +(defun vc-svn-annotate-extract-revision-at-line () + (save-excursion + (beginning-of-line) + (if (looking-at vc-svn-annotate-re) (match-string 1)))) + (provide 'vc-svn) ;; arch-tag: 02f10c68-2b4d-453a-90fc-1eee6cfb268d