D4300: context: make sure file is not deleted while checking path conflicts
pulkit (Pulkit Goyal)
phabricator at mercurial-scm.org
Thu Aug 16 14:07:50 UTC 2018
pulkit created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
If a file is deleted and a directory of same name is created in the same commit,
IMM thinks of that as a file conflict, however the file is deleted and hence the
directory can be created.
The test change demonstrate the fix.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D4300
AFFECTED FILES
mercurial/context.py
tests/test-rebase-inmemory.t
CHANGE DETAILS
diff --git a/tests/test-rebase-inmemory.t b/tests/test-rebase-inmemory.t
--- a/tests/test-rebase-inmemory.t
+++ b/tests/test-rebase-inmemory.t
@@ -177,8 +177,7 @@
$ hg rebase -r . -d 2
rebasing 4:daf7dfc139cb "a/a" (tip)
- abort: error: 'a/a' conflicts with file 'a' in 2.
- [255]
+ saved backup bundle to $TESTTMP/repo1/repo2/.hg/strip-backup/daf7dfc139cb-fdbfcf4f-rebase.hg
$ cd ..
diff --git a/mercurial/context.py b/mercurial/context.py
--- a/mercurial/context.py
+++ b/mercurial/context.py
@@ -1896,7 +1896,7 @@
components = path.split('/')
for i in pycompat.xrange(len(components)):
component = "/".join(components[0:i])
- if component in self.p1():
+ if component in self.p1() and self._cache[component]['exists']:
fail(path, component)
# Test the other direction -- that this path from p2 isn't a directory
To: pulkit, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list