Mercurial > hg
changeset 5207:212de429e000
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
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Tue, 21 Aug 2007 02:13:32 +0200 |
parents | 6a1d2dd96b8e |
children | cf9226452db7 |
files | mercurial/localrepo.py tests/test-add tests/test-add.out |
diffstat | 3 files changed, 73 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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