diff mercurial/filemerge.py @ 48555:c91418480cb0

simplemerge: use 3-way markers if mode=='merge3', ignoring number of labels Before this patch, we use a combination of `mode` and `labels` to decide which marker style to use. That's mostly my own fault because I was the one who added the `mergediff` as a "mode" instead of adding a separate argument for marker style. Still, let's make these arguments more orthogonal by ignoring the number of labels when deciding which marker style to use. This refactoring makes it a little clearer in the simplemerge *extension* that passing more than 2 `--label` arguments changes the marker style. Differential Revision: https://phab.mercurial-scm.org/D11972
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 14 Dec 2021 13:12:56 -0800
parents 5151b0f6519e
children 1a84758b4fca
line wrap: on
line diff
--- a/mercurial/filemerge.py	Fri Jan 14 10:25:45 2022 -0800
+++ b/mercurial/filemerge.py	Tue Dec 14 13:12:56 2021 -0800
@@ -421,14 +421,15 @@
             )
 
     if premerge:
+        if not labels:
+            labels = _defaultconflictlabels
+        if len(labels) < 3:
+            labels.append(b'base')
         mode = b'merge'
-        if premerge in {b'keep-merge3', b'keep-mergediff'}:
-            if not labels:
-                labels = _defaultconflictlabels
-            if len(labels) < 3:
-                labels.append(b'base')
-            if premerge == b'keep-mergediff':
-                mode = b'mergediff'
+        if premerge == b'keep-mergediff':
+            mode = b'mergediff'
+        elif premerge == b'keep-merge3':
+            mode = b'merge3'
         r = simplemerge.simplemerge(
             ui, fcd, fca, fco, quiet=True, label=labels, mode=mode
         )
@@ -532,7 +533,9 @@
         labels = _defaultconflictlabels
     if len(labels) < 3:
         labels.append(b'base')
-    return _imerge(repo, mynode, fcd, fco, fca, toolconf, backup, labels)
+    return _merge(
+        repo, mynode, fcd, fco, fca, toolconf, backup, labels, b'merge3'
+    )
 
 
 @internaltool(