[Updated] [+- ] D12149: filemerge: when not keeping premerge, don't write markers to context

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Tue Feb 8 22:10:39 UTC 2022


martinvonz updated this revision to Diff 32104.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D12149?vs=32098&id=32104

BRANCH
  default

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D12149/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D12149

AFFECTED FILES
  mercurial/filemerge.py

CHANGE DETAILS

diff --git a/mercurial/filemerge.py b/mercurial/filemerge.py
--- a/mercurial/filemerge.py
+++ b/mercurial/filemerge.py
@@ -402,7 +402,7 @@
         return filectx
 
 
-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
@@ -439,16 +439,15 @@
             merged_text, conflicts = simplemerge.simplemerge(
                 ui, local, base, other, mode=mode
             )
-            # fcd.flags() already has the merged flags (done in
-            # mergestate.resolve())
-            if merged_text is not None:
+            if merged_text is not None and (
+                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
 
 
@@ -875,12 +874,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.
 
@@ -1119,7 +1112,6 @@
                 other,
                 base,
                 toolconf,
-                backup,
             )
             # we're done if premerge was successful (r is 0)
             if not r:



To: martinvonz, #hg-reviewers
Cc: mercurial-patches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-patches/attachments/20220208/6fd7a403/attachment-0002.html>


More information about the Mercurial-patches mailing list