make hg add of a removed file unremove the file
authorBenoit Boissinot <benoit.boissinot@ens-lyon.org>
Tue, 21 Aug 2007 02:13:32 +0200
changeset 5207 212de429e000
parent 5206 6a1d2dd96b8e
child 5208 cf9226452db7
make hg add of a removed file unremove the file if a file was removed, hg add shouldn't mark the file as added, but as normal see issue683
mercurial/localrepo.py
tests/test-add
tests/test-add.out
--- a/mercurial/localrepo.py	Tue Aug 21 02:02:08 2007 +0200
+++ b/mercurial/localrepo.py	Tue Aug 21 02:13:32 2007 +0200
@@ -997,6 +997,8 @@
                                    "supported currently\n") % f)
                 elif self.dirstate[f] in 'amn':
                     self.ui.warn(_("%s already tracked!\n") % f)
+                elif self.dirstate[f] == 'r':
+                    self.dirstate.normaldirty(f)
                 else:
                     self.dirstate.add(f)
         finally:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-add	Tue Aug 21 02:13:32 2007 +0200
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+hg init a
+cd a
+echo a > a
+hg add -n
+hg st
+hg add
+hg st
+
+echo b > b
+hg add -n b
+hg st
+hg add b
+hg st
+echo % should fail
+hg add b
+hg st
+
+hg ci -m 0
+echo % should fail
+hg add a
+
+echo aa > a
+hg ci -m 1
+hg up 0
+echo aaa > a
+hg ci -m 2
+
+hg merge
+hg st
+echo % should fail
+hg add a
+hg st
+hg ci -m merge
+
+echo % issue683
+hg rm a
+hg st
+echo a > a
+hg add a
+hg st
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-add.out	Tue Aug 21 02:13:32 2007 +0200
@@ -0,0 +1,29 @@
+adding a
+? a
+adding a
+A a
+A a
+? b
+A a
+A b
+% should fail
+b already tracked!
+A a
+A b
+% should fail
+a already tracked!
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+warning: conflicts during merge.
+merging a
+merging a failed!
+0 files updated, 0 files merged, 0 files removed, 1 files unresolved
+There are unresolved merges, you can redo the full merge using:
+  hg update -C 2
+  hg merge 1
+M a
+% should fail
+a already tracked!
+M a
+% issue683
+R a
+M a