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
--- 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