mercurial/filemerge.py
changeset 48756 86e4b86df932
parent 48755 6ae3c97a0919
child 48758 7dad4665d223
--- a/mercurial/filemerge.py	Fri Jan 14 08:17:13 2022 -0800
+++ b/mercurial/filemerge.py	Tue Jan 18 12:57:55 2022 -0800
@@ -411,7 +411,7 @@
         raise error.Abort(msg)
 
 
-def _premerge(repo, local, other, base, toolconf, backup):
+def _premerge(repo, local, other, base, toolconf):
     tool, toolpath, binary, symlink, scriptfn = toolconf
     if symlink or local.fctx.isabsent() or other.fctx.isabsent():
         return 1
@@ -445,15 +445,13 @@
         merged_text, conflicts = simplemerge.simplemerge(
             ui, local, base, other, mode=mode
         )
-        # fcd.flags() already has the merged flags (done in
-        # mergestate.resolve())
-        local.fctx.write(merged_text, local.fctx.flags())
+        if not conflicts or premerge in validkeep:
+            # fcd.flags() already has the merged flags (done in
+            # mergestate.resolve())
+            local.fctx.write(merged_text, local.fctx.flags())
         if not conflicts:
             ui.debug(b" premerge successful\n")
             return 0
-        if premerge not in validkeep:
-            # restore from backup and try again
-            _restorebackup(local.fctx, backup)
     return 1  # continue merging
 
 
@@ -879,12 +877,6 @@
     }
 
 
-def _restorebackup(fcd, backup):
-    # TODO: Add a workingfilectx.write(otherfilectx) path so we can use
-    # util.copy here instead.
-    fcd.write(backup.data(), fcd.flags())
-
-
 def _makebackup(repo, ui, wctx, fcd):
     """Makes and returns a filectx-like object for ``fcd``'s backup file.
 
@@ -1123,7 +1115,6 @@
                 other,
                 base,
                 toolconf,
-                backup,
             )
             # we're done if premerge was successful (r is 0)
             if not r: