From: Dmitry Gutov Date: Fri, 18 Dec 2015 04:58:49 +0000 (+0200) Subject: Use 'hg id' in vc-hg-previous-revision X-Git-Tag: emacs-25.0.90~451 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f4747f6c51a07522ea4d9863b20357489f03ce69;p=emacs.git Use 'hg id' in vc-hg-previous-revision * lisp/vc/vc-hg.el (vc-hg-previous-revision): Use 'hg id' to retrieve it (bug#22032). --- diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el index dd897adc59c..62fbfde5f87 100644 --- a/lisp/vc/vc-hg.el +++ b/lisp/vc/vc-hg.el @@ -430,9 +430,13 @@ Optional arg REVISION is a revision to annotate from." ;;; Miscellaneous (defun vc-hg-previous-revision (_file rev) - (let ((newrev (1- (string-to-number rev)))) - (when (>= newrev 0) - (number-to-string newrev)))) + ;; We can't simply decrement by 1, because that revision might be + ;; e.g. on a different branch (bug#22032). + (with-temp-buffer + (and (eq 0 + (vc-hg-command t nil nil "id" "-n" "-r" (concat rev "^"))) + ;; Trim the trailing newline. + (buffer-substring (point-min) (1- (point-max)))))) (defun vc-hg-next-revision (_file rev) (let ((newrev (1+ (string-to-number rev)))