diff -r 921853391276 -r 6b1049d71c3e mercurial/filemerge.py --- a/mercurial/filemerge.py Fri Dec 03 16:21:46 2021 -0800 +++ b/mercurial/filemerge.py Fri Dec 03 21:41:43 2021 -0800 @@ -1027,7 +1027,7 @@ util.unlink(d) -def _filemerge(premerge, repo, wctx, mynode, orig, fcd, fco, fca, labels=None): +def _filemerge(repo, wctx, mynode, orig, fcd, fco, fca, labels=None): """perform a 3-way merge in the working directory premerge = whether this is a premerge @@ -1102,14 +1102,13 @@ r, deleted = func(repo, mynode, orig, fcd, fco, fca, toolconf, labels) return True, r, deleted - if premerge: - if orig != fco.path(): - ui.status( - _(b"merging %s and %s to %s\n") - % (uipathfn(orig), uipathfn(fco.path()), fduipath) - ) - else: - ui.status(_(b"merging %s\n") % fduipath) + if orig != fco.path(): + ui.status( + _(b"merging %s and %s to %s\n") + % (uipathfn(orig), uipathfn(fco.path()), fduipath) + ) + else: + ui.status(_(b"merging %s\n") % fduipath) ui.debug(b"my %s other %s ancestor %s\n" % (fcd, fco, fca)) @@ -1122,7 +1121,7 @@ ui.warn(onfailure % fduipath) return True, 1, False - back = _makebackup(repo, ui, wctx, fcd, premerge) + back = _makebackup(repo, ui, wctx, fcd, True) files = (None, None, None, back) r = 1 try: @@ -1140,7 +1139,7 @@ repo, fcd, fco, fca, labels, tool=tool ) - if premerge and mergetype == fullmerge: + if mergetype == fullmerge: # conflict markers generated by premerge will use 'detailed' # settings if either ui.mergemarkers or the tool's mergemarkers # setting is 'detailed'. This way tools can have basic labels in @@ -1160,8 +1159,9 @@ r = _premerge( repo, fcd, fco, fca, toolconf, files, labels=premergelabels ) - # complete if premerge successful (r is 0) - return not r, r, False + # we're done if premerge was successful (r is 0) + if not r: + return not r, r, False needcheck, r, deleted = func( repo, @@ -1278,14 +1278,7 @@ def filemerge(repo, wctx, mynode, orig, fcd, fco, fca, labels=None): - complete, merge_ret, deleted = _filemerge( - True, repo, wctx, mynode, orig, fcd, fco, fca, labels=labels - ) - if not complete: - complete, merge_ret, deleted = _filemerge( - False, repo, wctx, mynode, orig, fcd, fco, fca, labels=labels - ) - return complete, merge_ret, deleted + return _filemerge(repo, wctx, mynode, orig, fcd, fco, fca, labels=labels) def loadinternalmerge(ui, extname, registrarobj):