mergestate: add a constructor that sets up a clean merge state
Eventually, we'll move the read call out of the constructor. This will:
- avoid unnecessary reads when we're going to nuke the merge state anyway
- avoid raising an exception if there's an unsupported merge record
'clean' seems like a good name for it because I wanted to avoid anything with
the word 'new' in it, and 'reset' is more an action performed on a merge state
than a way to get a new merge state.
Thanks to Martin von Zweigbergk for feedback about naming this.
--- a/mercurial/merge.py Tue Nov 17 14:11:52 2015 -0800
+++ b/mercurial/merge.py Tue Nov 17 17:00:54 2015 -0800
@@ -75,6 +75,14 @@
statepathv1 = 'merge/state'
statepathv2 = 'merge/state2'
+ @staticmethod
+ def clean(repo, node=None, other=None):
+ """Initialize a brand new merge state, removing any existing state on
+ disk."""
+ ms = mergestate(repo)
+ ms.reset(node, other)
+ return ms
+
def __init__(self, repo):
self._repo = repo
self._dirty = False