mergestate: split up reset() for its two use cases
We only have one place that calls `ms.reset()` with any
arguments. That place is `mergestate.clean()`. The callers that call
the function with no arguments seem to all just want delete the
mergestate -- none of them look at the instance after calling
`reset()`. Let's separate out the two different use cases to make the
code clearer. I'll clean up further soon.
Differential Revision: https://phab.mercurial-scm.org/D9033
--- a/mercurial/mergestate.py Tue Sep 15 23:19:14 2020 -0700
+++ b/mercurial/mergestate.py Wed Sep 16 10:09:37 2020 -0700
@@ -181,7 +181,8 @@
"""Initialize a brand new merge state, removing any existing state on
disk."""
ms = mergestate(repo)
- ms.reset(node, other, labels)
+ ms.reset()
+ ms.start(node, other, labels)
return ms
@staticmethod
@@ -199,12 +200,9 @@
self._dirty = False
self._labels = None
- def reset(self, node=None, other=None, labels=None):
+ def reset(self):
self._state = {}
self._stateextras = collections.defaultdict(dict)
- self._local = node
- self._other = other
- self._labels = labels
for var in ('localctx', 'otherctx'):
if var in vars(self):
delattr(self, var)
@@ -217,6 +215,11 @@
self._results = {}
self._dirty = False
+ def start(self, node, other, labels=None):
+ self._local = node
+ self._other = other
+ self._labels = labels
+
def _read(self):
"""Analyse each record content to restore a serialized state from disk