Mercurial > emacs
diff lisp/vc-git.el @ 106472:6e0f1038bc44
Support showing a single log entry from vc-annotate.
* vc.el (print-log): Add a new argument: START-REVISION.
(vc-print-log-internal): Add a new optional argument and
pass it to the backend.
(vc-print-log, vc-print-root-log): Adjust callers.
* vc-annotate.el (vc-annotate-show-log-revision-at-line): If a
buffer already displays the requested log entry, use it.
Otherwise display only the log entry in question.
* vc-svn.el (vc-svn-print-log):
* vc-mtn.el (log-view-file-re):
* vc-hg.el (vc-hg-state):
* vc-git.el (vc-git-print-log): Add support for new argument START-REVISION.
(vc-git-show-log-entry): Return t on success.
* vc-bzr.el (vc-bzr-print-log): Add support new argument START-REVISION.
(vc-bzr-show-log-entry): Return t on success.
* vc-rcs.el (vc-rcs-print-log):
* vc-sccs.el (vc-sccs-print-log):
* vc-cvs.el (vc-cvs-print-log): Add new argument, ignore it.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Mon, 07 Dec 2009 09:02:11 +0000 |
parents | 67d9cb4f16c3 |
children | 88a0c109936e |
line wrap: on
line diff
--- a/lisp/vc-git.el Mon Dec 07 06:56:40 2009 +0000 +++ b/lisp/vc-git.el Mon Dec 07 09:02:11 2009 +0000 @@ -77,7 +77,7 @@ ;; - merge-news (file) see `merge' ;; - steal-lock (file &optional revision) NOT NEEDED ;; HISTORY FUNCTIONS -;; * print-log (files buffer &optional shortlog limit) OK +;; * print-log (files buffer &optional shortlog start-revision limit) OK ;; - log-view-mode () OK ;; - show-log-entry (revision) OK ;; - comment-history (file) ?? @@ -540,7 +540,7 @@ ;;; HISTORY FUNCTIONS -(defun vc-git-print-log (files buffer &optional shortlog limit) +(defun vc-git-print-log (files buffer &optional shortlog start-revision limit) "Get change log associated with FILES." (let ((coding-system-for-read git-commits-coding-system)) ;; `vc-do-command' creates the buffer, but we need it before running @@ -559,6 +559,7 @@ '("--graph" "--decorate" "--date=short" "--pretty=format:%d%h %ad %s" "--abbrev-commit")) (when limit (list "-n" (format "%s" limit))) + (when start-revision (list start-revision)) '("--"))))))) (defvar log-view-message-re) @@ -615,14 +616,17 @@ REVISION may have the form BRANCH, BRANCH~N, or BRANCH^ (where \"^\" can be repeated)." (goto-char (point-min)) - (when revision - (search-forward (format "\ncommit %s" revision) nil t - (cond ((string-match "~\\([0-9]\\)$" revision) - (1+ (string-to-number (match-string 1 revision)))) - ((string-match "\\^+$" revision) - (1+ (length (match-string 0 revision)))) - (t nil)))) - (beginning-of-line)) + (let (found) + (when revision + (setq found + (search-forward (format "\ncommit %s" revision) nil t + (cond ((string-match "~\\([0-9]\\)$" revision) + (1+ (string-to-number (match-string 1 revision)))) + ((string-match "\\^+$" revision) + (1+ (length (match-string 0 revision)))) + (t nil))))) + (beginning-of-line) + found)) (defun vc-git-diff (files &optional rev1 rev2 buffer) "Get a difference report using Git between two revisions of FILES."