diff options
Diffstat (limited to 'lisp/vc-bzr.el')
-rw-r--r-- | lisp/vc-bzr.el | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/lisp/vc-bzr.el b/lisp/vc-bzr.el index d04c783ca32..8861fef0388 100644 --- a/lisp/vc-bzr.el +++ b/lisp/vc-bzr.el @@ -487,7 +487,7 @@ REV non-nil gets an error." (set (make-local-variable 'log-view-file-re) "\\`a\\`") (set (make-local-variable 'log-view-message-re) (if vc-short-log - "^ *\\([0-9.]+\\) \\(.*?\\)[ \t]+\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}\\)\\( \\[merge\\]\\)?" + "^ *\\([0-9.]+\\): \\(.*?\\)[ \t]+\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}\\)\\( \\[merge\\]\\)?" "^ *\\(?:revno: \\([0-9.]+\\)\\|merged: .+\\)")) (set (make-local-variable 'log-view-font-lock-keywords) ;; log-view-font-lock-keywords is careful to use the buffer-local @@ -519,7 +519,7 @@ REV non-nil gets an error." (with-current-buffer buffer (apply 'vc-bzr-command "log" buffer 'async files (append - (when shortlog '("--short")) + (when shortlog '("--line")) (when start-revision (list (format "-r..%s" start-revision))) (when limit (list "-l" (format "%s" limit))) (if (stringp vc-bzr-log-switches) @@ -898,6 +898,19 @@ stream. Standard error output is discarded." (interactive "e") (vc-dir-at-event e (popup-menu vc-bzr-shelve-menu-map e))) +(defun vc-bzr-revision-table (files) + (let ((vc-bzr-revisions '()) + (default-directory (file-name-directory (car files)))) + (with-temp-buffer + (vc-bzr-command "log" t 0 files "--line") + (let ((start (point-min)) + (loglines (buffer-substring-no-properties (point-min) (point-max)))) + (while (string-match "^\\([0-9]+\\):" loglines) + (push (match-string 1 loglines) vc-bzr-revisions) + (setq start (+ start (match-end 0))) + (setq loglines (buffer-substring-no-properties start (point-max)))))) + vc-bzr-revisions)) + ;;; Revision completion (eval-and-compile |