[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v
From: |
Dan Nicolaescu |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v |
Date: |
Mon, 17 Mar 2008 16:25:18 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Dan Nicolaescu <dann> 08/03/17 16:25:16
Index: vc-bzr.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/vc-bzr.el,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- vc-bzr.el 15 Mar 2008 19:37:16 -0000 1.30
+++ vc-bzr.el 17 Mar 2008 16:25:12 -0000 1.31
@@ -464,44 +464,25 @@
Each line is tagged with the revision number, which has a `help-echo'
property containing author and date information."
(apply #'vc-bzr-command "annotate" buffer 0 file "--long" "--all"
- (if revision (list "-r" revision)))
- (with-current-buffer buffer
- ;; Store the tags for the annotated source lines in a hash table
- ;; to allow saving space by sharing the text properties.
- (setq vc-bzr-annotation-table (make-hash-table :test 'equal))
- (goto-char (point-min))
- (while (re-search-forward "^\\( *[0-9]+\\) +\\(.+\\) +\\([0-9]\\{8\\}\\) |"
- nil t)
- (let* ((rev (match-string 1))
- (author (match-string 2))
- (date (match-string 3))
- (key (match-string 0))
- (tag (gethash key vc-bzr-annotation-table)))
- (unless tag
- (setq tag (propertize rev 'help-echo (concat "Author: " author
- ", date: " date)
- 'mouse-face 'highlight))
- (puthash key tag vc-bzr-annotation-table))
- (replace-match "")
- (insert tag " |")))))
+ (when revision (list "-r" revision))))
(defun vc-bzr-annotate-time ()
- (when (re-search-forward "^ *[0-9]+ |" nil t)
- (let ((prop (get-text-property (line-beginning-position) 'help-echo)))
- (string-match "[0-9]+\\'" prop)
+ (when (re-search-forward "^[0-9]+.* \\([0-9]+ | \\)" nil t)
+ (goto-char (match-end 1))
+ (let ((str (buffer-substring-no-properties
+ (match-beginning 1) (match-end 1))))
(vc-annotate-convert-time
(encode-time 0 0 0
- (string-to-number (substring (match-string 0 prop) 6 8))
- (string-to-number (substring (match-string 0 prop) 4 6))
- (string-to-number (substring (match-string 0 prop) 0 4))
- )))))
+ (string-to-number (substring str 6 8))
+ (string-to-number (substring str 4 6))
+ (string-to-number (substring str 0 4)))))))
(defun vc-bzr-annotate-extract-revision-at-line ()
"Return revision for current line of annoation buffer, or nil.
Return nil if current line isn't annotated."
(save-excursion
(beginning-of-line)
- (if (looking-at " *\\([0-9]+\\) | ")
+ (when (looking-at "\\([0-9.]+\\) ")
(match-string-no-properties 1))))
(defun vc-bzr-command-discarding-stderr (command &rest args)
@@ -608,6 +589,47 @@
;; else fall back to default vc.el representation
(vc-default-dired-state-info 'Bzr file)))
+;; XXX Experimental function for the vc-dired replacement.
+;; XXX: this needs testing, it's probably incomplete.
+(defun vc-bzr-after-dir-status (update-function status-buffer)
+ (let ((status-str nil)
+ (file nil)
+ (translation '(("+N" . added)
+ ("-D" . removed)
+ (" M" . edited)
+ ;; XXX: what about ignored files?
+ (" D" . deleted)
+ ("? " . unregistered)))
+ (translated nil)
+ (result nil))
+ (goto-char (point-min))
+ (while (not (eobp))
+ (setq status-str
+ (buffer-substring-no-properties (point) (+ (point) 2)))
+ (setq file
+ (buffer-substring-no-properties (+ (point) 4)
+ (line-end-position)))
+ (setq translated (assoc status-str translation))
+ (push (cons file (cdr translated)) result)
+ (forward-line))
+ ;; Remove the temporary buffer.
+ (kill-buffer (current-buffer))
+ (funcall update-function result status-buffer)))
+
+;; XXX Experimental function for the vc-dired replacement.
+;; XXX This probably needs some further refinement and testing.
+(defun vc-bzr-dir-status (dir update-function status-buffer)
+ "Return a list of conses (file . state) for DIR."
+ (with-current-buffer
+ (get-buffer-create
+ (expand-file-name " *VC-bzr* tmp status" dir))
+ (erase-buffer)
+ ;; XXX: Is this the right command to use?
+ (vc-bzr-command "status" (current-buffer) 'async dir "-v" "-S")
+ (vc-exec-after
+ `(vc-bzr-after-dir-status (quote ,update-function) ,status-buffer))
+ (current-buffer)))
+
;;; Revision completion
(defun vc-bzr-complete-with-prefix (prefix action table string pred)
- [Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v, Stefan Monnier, 2008/03/06
- [Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v, Dan Nicolaescu, 2008/03/13
- [Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v, Dan Nicolaescu, 2008/03/14
- [Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v, Stefan Monnier, 2008/03/15
- [Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v,
Dan Nicolaescu <=
- [Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v, Dan Nicolaescu, 2008/03/17
- [Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v, Dan Nicolaescu, 2008/03/21
- [Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v, Dan Nicolaescu, 2008/03/23
- [Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v, Dan Nicolaescu, 2008/03/24
- [Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v, Stefan Monnier, 2008/03/24
- [Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v, Stefan Monnier, 2008/03/28
- [Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v, Stefan Monnier, 2008/03/28
- [Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v, Dan Nicolaescu, 2008/03/29
- [Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v, Dan Nicolaescu, 2008/03/31