# HG changeset patch # User Matt Mackall # Date 1181528218 18000 # Node ID 720ae5085ee34ab805ac27a443677c76629d686f # Parent 121999244123cdb8723b28c7777cfe2a771df03f commit: fix bug where dirstate for removed file is confused This fixes issue586 diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -810,6 +810,8 @@ class localrepository(repo.repository): if f in m1: del m1[f] removed.append(f) + elif f in m2: + removed.append(f) mn = self.manifest.add(m1, tr, linkrev, c1[0], c2[0], (new, removed)) # add changeset diff --git a/tests/test-586 b/tests/test-586 new file mode 100755 --- /dev/null +++ b/tests/test-586 @@ -0,0 +1,19 @@ +#!/bin/sh +# a test for issue586 + +hg init a +cd a +echo a > a +hg ci -Ama + +hg init ../b +cd ../b +echo b > b +hg ci -Amb + +hg pull -f ../a +hg merge +hg rm -f a +hg ci -Amc + +hg st -A diff --git a/tests/test-586.out b/tests/test-586.out new file mode 100644 --- /dev/null +++ b/tests/test-586.out @@ -0,0 +1,13 @@ +adding a +adding b +pulling from ../a +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) +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +(branch merge, don't forget to commit) +C b