Mercurial > emacs
changeset 107972:d7f8e879d70c
Fix the version number for added files.
* vc-hg.el (vc-hg-working-revision): Check if the file is
registered after hg parent fails (Bug#5961).
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Sat, 17 Apr 2010 09:10:19 -0700 |
parents | ab970852cf46 |
children | 34a427c407fe |
files | lisp/ChangeLog lisp/vc-hg.el |
diffstat | 2 files changed, 27 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Fri Apr 16 19:07:48 2010 -0700 +++ b/lisp/ChangeLog Sat Apr 17 09:10:19 2010 -0700 @@ -1,3 +1,9 @@ +2010-04-17 Dan Nicolaescu <dann@ics.uci.edu> + + Fix the version number for added files. + * vc-hg.el (vc-hg-working-revision): Check if the file is + registered after hg parent fails (Bug#5961). + 2010-04-17 Glenn Morris <rgm@gnu.org> * htmlfontify.el (htmlfontify-buffer)
--- a/lisp/vc-hg.el Fri Apr 16 19:07:48 2010 -0700 +++ b/lisp/vc-hg.el Sat Apr 17 09:10:19 2010 -0700 @@ -196,16 +196,16 @@ (let* ((status nil) (default-directory (file-name-directory file)) + ;; Avoid localization of messages so we can parse the output. + (avoid-local-env (append (list "TERM=dumb" "LANGUAGE=C" "HGRC=") + process-environment)) (out (with-output-to-string (with-current-buffer standard-output (setq status (condition-case nil - (let ((process-environment - ;; Avoid localization of messages so we can parse the output. - (append (list "TERM=dumb" "LANGUAGE=C" "HGRC=") - process-environment))) + (let ((process-environment avoid-local-env)) ;; Ignore all errors. (process-file "hg" nil t nil @@ -213,7 +213,23 @@ ;; Some problem happened. E.g. We can't find an `hg' ;; executable. (error nil))))))) - (when (eq 0 status) out))) + (if (eq 0 status) + out + ;; Check if the file is in the 'added state, the above hg + ;; command does not distinguish between 'added and 'unregistered. + (setq status + (condition-case nil + (let ((process-environment avoid-local-env)) + (process-file + "hg" nil nil nil + ;; We use "log" here, if there's a faster command + ;; that returns true for an 'added file and false + ;; for an 'unregistered one, we could use that. + "log" "-l1" (file-relative-name file))) + ;; Some problem happened. E.g. We can't find an `hg' + ;; executable. + (error nil))) + (when (eq 0 status) "0")))) ;;; History functions