Mercurial > emacs
changeset 102536:97eebd9d88a8
* vc-git.el (vc-git-previous-revision, vc-git-next-revision):
Fall back to original commit if vc-git-symbolic-commit fails to
find a symbolic name.
(vc-git-symbolic-commit): Don't limit search to tags. Treat
"undefined" as an error. (Bug #2110)
author | Alexandre Julliard <julliard@winehq.org> |
---|---|
date | Fri, 13 Mar 2009 20:04:11 +0000 |
parents | 915f463d82d4 |
children | 6837adfb2772 |
files | lisp/ChangeLog lisp/vc-git.el |
diffstat | 2 files changed, 42 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Fri Mar 13 19:59:44 2009 +0000 +++ b/lisp/ChangeLog Fri Mar 13 20:04:11 2009 +0000 @@ -1,3 +1,11 @@ +2009-03-13 Alexandre Julliard <julliard@winehq.org> + + * vc-git.el (vc-git-previous-revision, vc-git-next-revision): + Fall back to original commit if vc-git-symbolic-commit fails to + find a symbolic name. + (vc-git-symbolic-commit): Don't limit search to tags. Treat + "undefined" as an error. (Bug #2110) + 2009-03-13 D. Goel <deego3@gmail.com> * ibuf-ext.el:
--- a/lisp/vc-git.el Fri Mar 13 19:59:44 2009 +0000 +++ b/lisp/vc-git.el Fri Mar 13 20:04:11 2009 +0000 @@ -576,19 +576,19 @@ (defun vc-git-previous-revision (file rev) "Git-specific version of `vc-previous-revision'." (if file - (let ((default-directory (file-name-directory (expand-file-name file))) - (file (file-name-nondirectory file))) - (vc-git-symbolic-commit - (with-temp-buffer - (and - (vc-git--out-ok "rev-list" "-2" rev "--" file) - (goto-char (point-max)) - (bolp) - (zerop (forward-line -1)) - (not (bobp)) - (buffer-substring-no-properties - (point) - (1- (point-max))))))) + (let* ((default-directory (file-name-directory (expand-file-name file))) + (file (file-name-nondirectory file)) + (prev-rev (with-temp-buffer + (and + (vc-git--out-ok "rev-list" "-2" rev "--" file) + (goto-char (point-max)) + (bolp) + (zerop (forward-line -1)) + (not (bobp)) + (buffer-substring-no-properties + (point) + (1- (point-max))))))) + (or (vc-git-symbolic-commit prev-rev) prev-rev)) (with-temp-buffer (and (vc-git--out-ok "rev-parse" (concat rev "^")) @@ -609,18 +609,19 @@ (bobp) (buffer-substring-no-properties (point) - (1- (point-max))))))) - (and current-rev - (vc-git-symbolic-commit - (with-temp-buffer - (and - (vc-git--out-ok "rev-list" "HEAD" "--" file) - (goto-char (point-min)) - (search-forward current-rev nil t) - (zerop (forward-line -1)) - (buffer-substring-no-properties - (point) - (progn (forward-line 1) (1- (point)))))))))) + (1- (point-max)))))) + (next-rev + (and current-rev + (with-temp-buffer + (and + (vc-git--out-ok "rev-list" "HEAD" "--" file) + (goto-char (point-min)) + (search-forward current-rev nil t) + (zerop (forward-line -1)) + (buffer-substring-no-properties + (point) + (progn (forward-line 1) (1- (point))))))))) + (or (vc-git-symbolic-commit next-rev) next-rev))) (defun vc-git-delete-file (file) (vc-git-command nil 0 file "rm" "-f" "--")) @@ -731,13 +732,14 @@ "Translate COMMIT string into symbolic form. Returns nil if not possible." (and commit - (with-temp-buffer - (and - (vc-git--out-ok "name-rev" "--name-only" "--tags" commit) - (goto-char (point-min)) - (= (forward-line 2) 1) - (bolp) - (buffer-substring-no-properties (point-min) (1- (point-max))))))) + (let ((name (with-temp-buffer + (and + (vc-git--out-ok "name-rev" "--name-only" commit) + (goto-char (point-min)) + (= (forward-line 2) 1) + (bolp) + (buffer-substring-no-properties (point-min) (1- (point-max))))))) + (and name (not (string= name "undefined")) name)))) (provide 'vc-git)