Mercurial > public > mercurial-scm > hg-stable
diff mercurial/context.py @ 45510:19590b126764
merge: use in-memory mergestate when using in-memory context
This is my version of Augie's D8568. It makes it so we don't touch the
mergestate on disk when using an in-memory context.
The reason that I want this is not the same as the reason that Augie
write his patch (though I agree with that reason too). My hope is to
make in-memory rebase not fall back to on-disk rebase when there are
conflict. I plan to do that by adding a
`overlayworkingctx.reflect_in_workingcopy()`. The idea is that that
will update the working copy, the dirstate and the mergestate as
necessary.
Differential Revision: https://phab.mercurial-scm.org/D9040
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Tue, 15 Sep 2020 16:10:16 -0700 |
parents | a108f7ff7778 |
children | e359af6517ce |
line wrap: on
line diff
--- a/mercurial/context.py Tue Sep 15 11:17:24 2020 -0700 +++ b/mercurial/context.py Tue Sep 15 16:10:16 2020 -0700 @@ -2528,6 +2528,7 @@ return path in self._cache def clean(self): + self._mergestate = None self._cache = {} def _compact(self): @@ -2592,6 +2593,11 @@ self._repo, path, parent=self, filelog=filelog ) + def mergestate(self, clean=False): + if clean or self._mergestate is None: + self._mergestate = mergestatemod.memmergestate(self._repo) + return self._mergestate + class overlayworkingfilectx(committablefilectx): """Wrap a ``workingfilectx`` but intercepts all writes into an in-memory