# HG changeset patch # User Pulkit Goyal # Date 1534427980 -10800 # Node ID 873f3a56993ff077cdd95c98da37e2c740674538 # Parent 02e80e37fbbc999398c0949404cc09361ce5ef62 context: make sure file is not deleted while checking path conflicts 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. Differential Revision: https://phab.mercurial-scm.org/D4300 diff -r 02e80e37fbbc -r 873f3a56993f mercurial/context.py --- a/mercurial/context.py Thu Aug 16 16:53:48 2018 +0300 +++ b/mercurial/context.py Thu Aug 16 16:59:40 2018 +0300 @@ -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 diff -r 02e80e37fbbc -r 873f3a56993f tests/test-rebase-inmemory.t --- a/tests/test-rebase-inmemory.t Thu Aug 16 16:53:48 2018 +0300 +++ b/tests/test-rebase-inmemory.t Thu Aug 16 16:59:40 2018 +0300 @@ -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 ..