Comments
Patch
@@ -78,6 +78,7 @@ class mergestate(object):
self._other = other
shutil.rmtree(self._repo.join('merge'), True)
self._dirty = False
+ self._pausedmerges = []
def _read(self):
"""Analyse each record content to restore a serialized state from disk
@@ -101,6 +102,7 @@ class mergestate(object):
raise util.Abort(_('unsupported merge state record: %s')
% rtype)
self._dirty = False
+ self._pausedmerges = []
def _readrecords(self):
"""Read merge state from disk and return a list of record (TYPE, data)
@@ -323,6 +325,22 @@ class mergestate(object):
self.mark(dfile, 'r')
return r
+ def concludemerges(self):
+ """complete all paused merges"""
+ results = {}
+ for dfile, mergectx in self._pausedmerges:
+ r = mergectx.merge()
+ if r is None:
+ # no real conflict
+ del self._state[dfile]
+ self._dirty = True
+ elif not r:
+ self.mark(dfile, 'r')
+ results[dfile] = r
+
+ self._pausedmerges = []
+ return results
+
def _checkunknownfile(repo, wctx, mctx, f, f2=None):
if f2 is None:
f2 = f