# HG changeset patch # User Patrick Mezard # Date 1231016098 -3600 # Node ID f9784c425a9619b5b024671c941e21b70d45ede8 # Parent 3ccaefc84f45ce9ab5c0b80ca8961dd2afc63f2a# Parent f1af59451c0c46c5d691a70d715f0e29722b69cd Merge with crew-stable diff -r 3ccaefc84f45 -r f9784c425a96 mercurial/localrepo.py --- a/mercurial/localrepo.py Sat Jan 03 21:44:15 2009 +0100 +++ b/mercurial/localrepo.py Sat Jan 03 21:54:58 2009 +0100 @@ -882,16 +882,15 @@ # update manifest m1.update(new) - removed = [] + removed = [f for f in util.sort(remove) if f in m1 or f in m2] + removed1 = [] - for f in util.sort(remove): + for f in removed: if f in m1: del m1[f] - removed.append(f) - elif f in m2: - removed.append(f) + removed1.append(f) mn = self.manifest.add(m1, trp, linkrev, c1[0], c2[0], - (new, removed)) + (new, removed1)) # add changeset if (not empty_ok and not text) or force_editor: diff -r 3ccaefc84f45 -r f9784c425a96 tests/test-586 --- a/tests/test-586 Sat Jan 03 21:44:15 2009 +0100 +++ b/tests/test-586 Sat Jan 03 21:54:58 2009 +0100 @@ -17,3 +17,33 @@ hg ci -Amc hg st -A +cd .. + +# a test for issue 1433, related to issue586 +echo % create test repos +hg init repoa +touch repoa/a +hg -R repoa ci -Am adda + +hg init repob +touch repob/b +hg -R repob ci -Am addb + +hg init repoc +cd repoc +hg pull ../repoa +hg update +mkdir tst +hg mv * tst +hg ci -m "import a in tst" +hg pull -f ../repob +echo % merge both repos +hg merge +mkdir src +echo % move b content +hg mv b src +hg ci -m "import b in src" +hg manifest + + + diff -r 3ccaefc84f45 -r f9784c425a96 tests/test-586.out --- a/tests/test-586.out Sat Jan 03 21:44:15 2009 +0100 +++ b/tests/test-586.out Sat Jan 03 21:54:58 2009 +0100 @@ -11,3 +11,28 @@ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) C b +% create test repos +adding a +adding b +pulling from ../repoa +requesting all changes +adding changesets +adding manifests +adding file changes +added 1 changesets with 1 changes to 1 files +(run 'hg update' to get a working copy) +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +pulling from ../repob +searching for changes +warning: repository is unrelated +adding changesets +adding manifests +adding file changes +added 1 changesets with 1 changes to 1 files (+1 heads) +(run 'hg heads' to see heads, 'hg merge' to merge) +% merge both repos +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +(branch merge, don't forget to commit) +% move b content +src/b +tst/a