GNU bug report logs -
#17570
* lisp/vc/vc-hg.el (vc-hg-working-revision): Fix returning working revision instead of last revision.
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#17570: * lisp/vc/vc-hg.el (vc-hg-working-revision): Fix returning working revision instead of last revision.
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 17570 <at> debbugs.gnu.org.
--
17570: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17570
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
> I wish to fix the lisp/vc/vc-hg.el (vc-hg-working-revision) function with
> the `hg parent' command.
Good idea, thanks. But your patch's indentation was completely messed
up (as well as placement of line breaks).
I installed a cleaned up version into `emacs-24' (contrary to the
previous patch which I installed into `trunk' since it was a new
feature rather than a bug-fix).
Stefan
=== modified file 'lisp/ChangeLog'
--- lisp/ChangeLog 2014-06-06 14:25:39 +0000
+++ lisp/ChangeLog 2014-06-06 16:27:21 +0000
@@ -1,3 +1,8 @@
+2014-06-06 Santiago Payà i Miralta <santiagopim <at> gmail.com>
+
+ * vc/vc-hg.el (vc-hg-working-revision): Use "hg parent" and
+ vc-hg-command (bug#17570).
+
2014-06-06 Stefan Monnier <monnier <at> iro.umontreal.ca>
* international/mule-cmds.el (ucs-names): Add special entry for BEL
=== modified file 'lisp/vc/vc-hg.el'
--- lisp/vc/vc-hg.el 2014-05-11 02:01:08 +0000
+++ lisp/vc/vc-hg.el 2014-06-06 16:26:37 +0000
@@ -227,14 +227,11 @@
(defun vc-hg-working-revision (file)
"Hg-specific version of `vc-working-revision'."
- (let ((default-directory (if (file-directory-p file)
- (file-name-as-directory file)
- (file-name-directory file))))
- (ignore-errors
+ (or (ignore-errors
(with-output-to-string
- (process-file vc-hg-program nil standard-output nil
- "log" "-l" "1" "--template" "{rev}"
- (file-relative-name file))))))
+ (vc-hg-command standard-output 0 file
+ "parent" "--template" "{rev}")))
+ "0"))
;;; History functions
[Message part 3 (message/rfc822, inline)]
[Message part 4 (text/plain, inline)]
Hi emacs,
I wish to fix the lisp/vc/vc-hg.el (vc-hg-working-revision) function with
the `hg parent' command.
Actually this function uses the `hg log -l 1' command that returns the last
commited revision, not the last checked out revision. When checking out a
specified revision with `hg update REV' the actual revision of FILE is
returned by `hg parent'.
vc.el:
;; * working-revision (file)
;;
;; Return the working revision of FILE. This is the revision fetched
;; by the last checkout or update, not necessarily the same thing as the
;; head or tip revision. Should return "0" for a file added but not yet
;; committed.
On success `hg parent' command returns 0 and prints the parent of FILE. For
not registered, as added but not commited files, throws error code and
prints a message, so could check the returning value to substitute the
printed message with "0" as vc.el requires. Here it is proposed the
catch/throw mechanism.
2014-05-24 Santiago Payà i Miralta <santiagopim <at> gmail.com>
* lisp/vc/vc-hg.el (vc-hg-working-revision): Fix
returning working revision instead of last revision.
From 426ae4ae2f4ed6f26fc65bb5023fe79ba79686ae Mon Sep 17 00:00:00 2001
From: Santiago Payà i Miralta <santiagopim <at> gmail.com>
Date: Sat, 24 May 2014 00:20:19 +0200
Subject: [PATCH] * lisp/vc/vc-hg.el (vc-hg-working-revision): Fix returning
working revision instead of last revision.
Actually this function uses the `hg log -l 1' command that returns the last
commited revision, not the last checked out revision. When checking out a
specified revision with `hg update REV' the actual revision of FILE is
returned by `hg parent'.
vc.el:
;; * working-revision (file)
;;
;; Return the working revision of FILE. This is the revision fetched
;; by the last checkout or update, not necessarily the same thing as the
;; head or tip revision. Should return "0" for a file added but not yet
;; committed.
On success `hg parent' command returns 0 and prints the parent of FILE. For
not registered, as added but not commited files, throws error code and
prints a message, so could check the returning value to substitute the
printed message with "0" as vc.el requires. Here it is proposed the
catch/throw mechanism.
---
lisp/vc/vc-hg.el | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el
index 05b53a3..0326456 100644
--- a/lisp/vc/vc-hg.el
+++ b/lisp/vc/vc-hg.el
@@ -230,11 +230,14 @@ highlighting the Log View buffer."
(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))))))
+ (catch 'wrap
+ (ignore-errors
+ (with-output-to-string
+ (if (/= 0
+ (process-file vc-hg-program nil standard-output nil
+ "parent" "--template" "{rev}"
+ (file-relative-name file))
+ )(throw 'wrap "0")))))))
;;; History functions
--
1.7.9.5
[Message part 5 (text/html, inline)]
This bug report was last modified 11 years and 50 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.