Mercurial > emacs
changeset 87455:06f57a4af48c
(vc-hg-registered): Return the false when vc-hg-state
returns 'ignored or 'unregistered.
(vc-hg-state): Pass "-A" to the status command and deal with the
output.
(vc-hg-dir-state): Pass "-A" to the status command.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Fri, 28 Dec 2007 22:50:18 +0000 |
parents | 0cbc451989a7 |
children | 537232b11043 |
files | lisp/ChangeLog lisp/vc-hg.el |
diffstat | 2 files changed, 15 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Fri Dec 28 22:26:31 2007 +0000 +++ b/lisp/ChangeLog Fri Dec 28 22:50:18 2007 +0000 @@ -1,3 +1,11 @@ +2007-12-28 Dan Nicolaescu <dann@ics.uci.edu> + + * vc-hg.el (vc-hg-registered): Return the false when vc-hg-state + returns 'ignored or 'unregistered. + (vc-hg-state): Pass "-A" to the status command and deal with the + output. + (vc-hg-dir-state): Pass "-A" to the status command. + 2007-12-29 Richard Stallman <rms@gnu.org> * progmodes/compile.el (compilation-start): Set initial visible
--- a/lisp/vc-hg.el Fri Dec 28 22:26:31 2007 +0000 +++ b/lisp/vc-hg.el Fri Dec 28 22:50:18 2007 +0000 @@ -147,7 +147,9 @@ (defun vc-hg-registered (file) "Return non-nil if FILE is registered with hg." (when (vc-hg-root file) ; short cut - (vc-file-setprop file 'vc-state (vc-hg-state file)))) ; expensive + (let ((state (vc-hg-state file))) ; expensive + (vc-file-setprop file 'vc-state state) + (not (memq state '(ignored unregistered)))))) (defun vc-hg-state (file) "Hg-specific version of `vc-state'." @@ -162,26 +164,26 @@ ;; Ignore all errors. (call-process "hg" nil t nil "--cwd" (file-name-directory file) - "status" (file-name-nondirectory file)) + "status" "-A" (file-name-nondirectory file)) ;; Some problem happened. E.g. We can't find an `hg' ;; executable. (error nil))))))) (when (eq 0 status) - (if (eq 0 (length out)) 'up-to-date (when (null (string-match ".*: No such file or directory$" out)) (let ((state (aref out 0))) (cond + ((eq state ?C) 'up-to-date) ((eq state ?A) 'edited) ((eq state ?M) 'edited) ((eq state ?I) 'ignored) ((eq state ?R) 'unregistered) ((eq state ??) 'unregistered) - (t 'up-to-date)))))))) + (t 'up-to-date))))))) (defun vc-hg-dir-state (dir) (with-temp-buffer (buffer-disable-undo) ;; Because these buffers can get huge - (vc-hg-command (current-buffer) nil nil "status") + (vc-hg-command (current-buffer) nil nil "status" "-A") (goto-char (point-min)) (let ((status-char nil) (file nil))