changeset 402:2fe8d66e3075

[PATCH] (3/4) Removing an added file -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 [PATCH] (3/4) Removing an added file From: Michael A Fetterman <Michael.Fetterman@cl.cam.ac.uk> Here's an hg changeset that deals with "hg add"ing and then "hg remove"ing a file without ever committing it. Previously, this caused a python exception at commit time. Test case included in the patch. manifest hash: 4d012f3f8b1aa664fed9e8bc2849931b28728acd -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCuMPtywK+sNU5EO8RAuxMAKCmeMLqOUBmUfCfbQgYOAysOvKkwgCfcJai 2My0M7KqhwnJSbZXbGIOcow= =N7N0 -----END PGP SIGNATURE-----
author mpm@selenic.com
date Tue, 21 Jun 2005 17:50:37 -0800
parents af4848f83e68
children fda7bb480020
files mercurial/hg.py tests/test-merge3 tests/test-merge3.out
diffstat 3 files changed, 22 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/hg.py	Tue Jun 21 17:47:28 2005 -0800
+++ b/mercurial/hg.py	Tue Jun 21 17:50:37 2005 -0800
@@ -706,6 +706,9 @@
             p = self.wjoin(f)
             if os.path.isfile(p):
                 self.ui.warn("%s still exists!\n" % f)
+            elif self.dirstate.state(f) == 'a':
+                self.ui.warn("%s never committed!\n" % f)
+                self.dirstate.forget(f)
             elif f not in self.dirstate:
                 self.ui.warn("%s not tracked!\n" % f)
             else:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-merge3	Tue Jun 21 17:50:37 2005 -0800
@@ -0,0 +1,10 @@
+#!/bin/sh -x
+
+hg init
+echo This is file a1 > a
+hg add a
+hg commit -t "commit #0" -d "0 0" -u user
+touch b
+hg add b
+rm b
+hg commit -A -t"comment #1" -d "0 0" -u user
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-merge3.out	Tue Jun 21 17:50:37 2005 -0800
@@ -0,0 +1,9 @@
++ hg init
++ echo This is file a1
++ hg add a
++ hg commit -t 'commit #0' -d '0 0' -u user
++ touch b
++ hg add b
++ rm b
++ hg commit -A '-tcomment #1' -d '0 0' -u user
+b never committed!