[PATCH 3 of 6 mergedriver] mergestate: add a constructor that sets up a fresh merge state
Siddharth Agarwal
sid0 at fb.com
Tue Nov 17 17:58:41 CST 2015
# HG changeset patch
# User Siddharth Agarwal <sid0 at fb.com>
# Date 1447797080 28800
# Tue Nov 17 13:51:20 2015 -0800
# Node ID bb1b25b554d6efe340f3c74b58fec40cd56fd557
# Parent a879917dec18a4621476c8af18724f5d5696c663
mergestate: add a constructor that sets up a fresh 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
I chose 'fresh' for the name 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.
diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -75,6 +75,14 @@ class mergestate(object):
statepathv1 = 'merge/state'
statepathv2 = 'merge/state2'
+ @staticmethod
+ def fresh(repo, node=None, other=None):
+ """Initialize a fresh 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
More information about the Mercurial-devel
mailing list