Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/context.py @ 42317:e79aeb518aa1
overlayworkingctx: don't include added-then-deleted files in memctx
If a file (such as a .orig file) is temporarily added to the
overlayworkingctx and then deleted, it's still going to be in the
_cache dict. In tomemctx(), we created the list of files from
_cache.keys(), so the memctx.files() would include the temporary
file. That was fine because the list of files was only used in
localrepo.commitctx() (I think), where there's an extra filtering of
incorrectly removed files (annotated with an inaccurate "update
manifest" comment). I'd like to call memctx.files() in another case,
but first we need to make it accurate.
Differential Revision: https://phab.mercurial-scm.org/D6361
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 10 May 2019 14:27:22 -0700 |
parents | cdcebc897529 |
children | a13b30555ffb |
comparison
equal
deleted
inserted
replaced
42316:83b225fbd788 | 42317:e79aeb518aa1 |
---|---|
2053 if parents[1] is None: | 2053 if parents[1] is None: |
2054 parents = (self._repo[parents[0]], None) | 2054 parents = (self._repo[parents[0]], None) |
2055 else: | 2055 else: |
2056 parents = (self._repo[parents[0]], self._repo[parents[1]]) | 2056 parents = (self._repo[parents[0]], self._repo[parents[1]]) |
2057 | 2057 |
2058 files = self._cache.keys() | 2058 files = self.files() |
2059 def getfile(repo, memctx, path): | 2059 def getfile(repo, memctx, path): |
2060 if self._cache[path]['exists']: | 2060 if self._cache[path]['exists']: |
2061 return memfilectx(repo, memctx, path, | 2061 return memfilectx(repo, memctx, path, |
2062 self._cache[path]['data'], | 2062 self._cache[path]['data'], |
2063 'l' in self._cache[path]['flags'], | 2063 'l' in self._cache[path]['flags'], |