Mercurial > hg
changeset 34037:65ae54582713
merge: move some of the logic in batchget() to workingfilectx
We will use this logic in two places with in-memory merge.
Differential Revision: https://phab.mercurial-scm.org/D444
author | Phil Cohen <phillco@fb.com> |
---|---|
date | Thu, 31 Aug 2017 11:28:59 -0700 |
parents | fe04c018eaac |
children | bc2535238de2 |
files | mercurial/context.py mercurial/merge.py |
diffstat | 2 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/context.py Thu Aug 31 11:28:59 2017 -0700 +++ b/mercurial/context.py Thu Aug 31 11:28:59 2017 -0700 @@ -1963,6 +1963,14 @@ self._repo.wwrite(self._path, data, flags, backgroundclose=backgroundclose) + def clearunknown(self): + """Removes conflicting items in the working directory so that + ``write()`` can be called successfully. + """ + wvfs = self._repo.wvfs + if wvfs.isdir(self._path) and not wvfs.islink(self._path): + wvfs.removedirs(self._path) + def setflags(self, l, x): self._repo.wvfs.setflags(self._path, l, x)
--- a/mercurial/merge.py Thu Aug 31 11:28:59 2017 -0700 +++ b/mercurial/merge.py Thu Aug 31 11:28:59 2017 -0700 @@ -1150,9 +1150,7 @@ except OSError as e: if e.errno != errno.ENOENT: raise - - if repo.wvfs.isdir(f) and not repo.wvfs.islink(f): - repo.wvfs.removedirs(f) + wctx[f].clearunknown() wctx[f].write(fctx(f).data(), flags, backgroundclose=True) if i == 100: yield i, f