Subject: bug#17454: lisp/vc/vc-hg.el: vc-hg-unregister fixed with the hg forget command.

From: Santiago Payà i Miralta <[email-masked]>
Date: Sat, 10 May 2014 17:37:49 +0200

Hi emacs,

I wish to fix the lisp/vc/vc-hg.el (vc-hg-unregister) function with the hg
forget command.

Since Mercurial 1.3 (2009) "forget" shorthands "remove -Af".

As the forget help says forget mark the specified files so they will no
longer be tracked after the next commit. This only removes files from the
current branch, not from the entire project history, and it does not
delete them
from the working directory.

2014-05-17 Santiago Payà i Miralta <[email-masked]>

        * lisp/vc/vc-hg.el (vc-hg-unregister):
        Fixed with the hg forget command.

>From f38abf59917445fb96c2950e8880f3e40b896ecc Mon Sep 17 00:00:00 2001
From: Santiago Payà i Miralta <[email-masked]>
Date: Sat, 10 May 2014 11:54:49 +0200
Subject: [PATCH] * lisp/vc/vc-hg.el (vc-hg-unregister): Fixed with the hg
 forget command.

Since Mercurial 1.3 (2009) "forget" shorthands "remove -Af".

Forget mark the specified files so they will no longer be tracked
after the next commit. This only removes files from the current
branch, not from the entire project history, and it does not delete
them from the working directory.
---
 lisp/vc/vc-hg.el |    9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el
index a53ed87..05b53a3 100644
--- a/lisp/vc/vc-hg.el
+++ b/lisp/vc/vc-hg.el
@@ -60,7 +60,7 @@
 ;; - responsible-p (file)                      OK
 ;; - could-register (file)                     OK
 ;; - receive-file (file rev)                   ?? PROBABLY NOT NEEDED
-;; - unregister (file)                         COMMENTED OUT, MAY BE
INCORRECT
+;; - unregister (file)                         OK
 ;; * checkin (files rev comment)               OK
 ;; * find-revision (file rev buffer)           OK
 ;; * checkout (file &optional editable rev)    OK
@@ -436,10 +436,9 @@ COMMENT is ignored."
              ;; registered.
          (error))))

-;; FIXME: This would remove the file. Is that correct?
-;; (defun vc-hg-unregister (file)
-;;   "Unregister FILE from hg."
-;;   (vc-hg-command nil nil file "remove"))
+(defun vc-hg-unregister (file)
+  "Unregister FILE from hg."
+  (vc-hg-command nil 0 file "forget"))

 (declare-function log-edit-extract-headers "log-edit" (headers string))

-- 
1.7.9.5