# HG changeset patch # User Augie Fackler # Date 1589832026 14400 # Node ID e607099d8b938bef4fc2581385917a4cf80a803a # Parent b7808443ed6a6af47f02793ee4ea2a1e52df0e15 context: implement mergestate() method This will let us have the mergestate storage be controlled by the context. In particular, for working contexts we should use the existing mergestate, but for overlay contexts it's inappropriate to drop files in .hg/merge. Differential Revision: https://phab.mercurial-scm.org/D8551 diff -r b7808443ed6a -r e607099d8b93 mercurial/context.py --- a/mercurial/context.py Mon May 18 14:59:59 2020 -0400 +++ b/mercurial/context.py Mon May 18 16:00:26 2020 -0400 @@ -34,6 +34,7 @@ error, fileset, match as matchmod, + mergestate as mergestatemod, obsolete as obsmod, patch, pathutil, @@ -474,6 +475,12 @@ return r + def mergestate(self, clean=False): + """Get a mergestate object for this context.""" + raise NotImplementedError( + '%s does not implement mergestate()' % self.__class__ + ) + class changectx(basectx): """A changecontext object makes access to data related to a particular @@ -2003,6 +2010,11 @@ sparse.aftercommit(self._repo, node) + def mergestate(self, clean=False): + if clean: + return mergestatemod.mergestate.clean(self._repo) + return mergestatemod.mergestate.read(self._repo) + class committablefilectx(basefilectx): """A committablefilectx provides common functionality for a file context