filemerge: also return whether the merge is complete
In future patches, we'll pause merges after the premerge step. After the
premerge step we'll return complete = False.
--- a/hgext/largefiles/overrides.py Sun Oct 11 12:31:08 2015 -0700
+++ b/hgext/largefiles/overrides.py Sun Oct 11 12:56:21 2015 -0700
@@ -553,7 +553,7 @@
(lfutil.splitstandin(orig), ahash, dhash, ohash),
0) == 1)):
repo.wwrite(fcd.path(), fco.data(), fco.flags())
- return 0
+ return True, 0
def copiespathcopies(orig, ctx1, ctx2, match=None):
copies = orig(ctx1, ctx2, match=match)
--- a/mercurial/filemerge.py Sun Oct 11 12:31:08 2015 -0700
+++ b/mercurial/filemerge.py Sun Oct 11 12:56:21 2015 -0700
@@ -443,6 +443,8 @@
fco = other file context
fca = ancestor file context
fcd = local file context for current/destination file
+
+ Returns whether the merge is complete, and the return value of the merge.
"""
if True:
@@ -456,7 +458,7 @@
return name
if not fco.cmp(fcd): # files identical?
- return None
+ return True, None
ui = repo.ui
fd = fcd.path()
@@ -483,7 +485,7 @@
toolconf = tool, toolpath, binary, symlink
if mergetype == nomerge:
- return func(repo, mynode, orig, fcd, fco, fca, toolconf)
+ return True, func(repo, mynode, orig, fcd, fco, fca, toolconf)
if orig != fco.path():
ui.status(_("merging %s and %s to %s\n") % (orig, fco.path(), fd))
@@ -496,7 +498,7 @@
toolconf):
if onfailure:
ui.warn(onfailure % fd)
- return 1
+ return True, 1
a = repo.wjoin(fd)
b = temp("base", fca)
@@ -529,7 +531,7 @@
if onfailure:
ui.warn(onfailure % fd)
- return r
+ return True, r
finally:
if not r:
util.unlink(back)
--- a/mercurial/merge.py Sun Oct 11 12:31:08 2015 -0700
+++ b/mercurial/merge.py Sun Oct 11 12:56:21 2015 -0700
@@ -310,8 +310,8 @@
f = self._repo.vfs('merge/' + hash)
self._repo.wwrite(dfile, f.read(), flags)
f.close()
- r = filemerge.filemerge(self._repo, self._local, lfile, fcd, fco, fca,
- labels=labels)
+ complete, r = filemerge.filemerge(self._repo, self._local, lfile, fcd,
+ fco, fca, labels=labels)
if r is None:
# no real conflict
del self._state[dfile]