* lisp/vc/vc-hg.el (vc-hg-working-revision): Rework to work with both

directory and file as argument.

Fixes: debbugs:10822
This commit is contained in:
Leo Liu 2012-03-13 18:40:29 +08:00
parent 6ea7151ba6
commit 9e345a01ba
2 changed files with 13 additions and 39 deletions

View file

@ -1,3 +1,8 @@
2012-03-13 Leo Liu <sdl.web@gmail.com>
* vc/vc-hg.el (vc-hg-working-revision): Rework to work with both
directory and file as argument (Bug#10822).
2012-03-13 Kaushik Srenevasan <ksrenevasan@gmail.com> (tiny change)
* progmodes/gdb-mi.el (gdb-invalidate-disassembly):

View file

@ -226,45 +226,14 @@ highlighting the Log View buffer."
(defun vc-hg-working-revision (file)
"Hg-specific version of `vc-working-revision'."
(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")
process-environment))
(out
(with-output-to-string
(with-current-buffer
standard-output
(setq status
(condition-case nil
(let ((process-environment avoid-local-env))
;; Ignore all errors.
(process-file
vc-hg-program nil t nil
"--config" "alias.parents=parents"
"--config" "defaults.parents="
"parents" "--template" "{rev}" (file-relative-name file)))
;; Some problem happened. E.g. We can't find an `hg'
;; executable.
(error nil)))))))
(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
vc-hg-program 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"))))
(let ((default-directory (if (file-directory-p file)
(file-name-as-directory file)
(file-name-directory file))))
(ignore-errors
(with-output-to-string
(process-file vc-hg-program nil standard-output nil
"log" "-l" "1" "--template" "{rev}"
(file-relative-name file))))))
;;; History functions