[Updated] [+- ] D11887: simplemerge: make `localorother` a "mode" instead of a separate thing

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Wed Dec 8 06:39:03 UTC 2021


martinvonz updated this revision to Diff 31376.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D11887?vs=31375&id=31376

BRANCH
  default

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

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

AFFECTED FILES
  mercurial/filemerge.py
  mercurial/simplemerge.py

CHANGE DETAILS

diff --git a/mercurial/simplemerge.py b/mercurial/simplemerge.py
--- a/mercurial/simplemerge.py
+++ b/mercurial/simplemerge.py
@@ -516,13 +516,17 @@
 
     m3 = Merge3Text(basetext, localtext, othertext)
     extrakwargs = {
-        "localorother": opts.get("localorother", None),
+        "localorother": None,
         'minimize': True,
     }
     if mode == b'union':
         extrakwargs['start_marker'] = None
         extrakwargs['mid_marker'] = None
         extrakwargs['end_marker'] = None
+    elif mode == b'local':
+        extrakwargs['localorother'] = b'local'
+    elif mode == b'other':
+        extrakwargs['localorother'] = b'other'
     elif name_base is not None:
         extrakwargs['base_marker'] = b'|||||||'
         extrakwargs['name_base'] = name_base
diff --git a/mercurial/filemerge.py b/mercurial/filemerge.py
--- a/mercurial/filemerge.py
+++ b/mercurial/filemerge.py
@@ -579,43 +579,24 @@
     )
 
 
-def _imergeauto(
-    repo,
-    mynode,
-    fcd,
-    fco,
-    fca,
-    toolconf,
-    backup,
-    labels=None,
-    localorother=None,
-):
-    """
-    Generic driver for _imergelocal and _imergeother
-    """
-    assert localorother is not None
-    r = simplemerge.simplemerge(
-        repo.ui, fcd, fca, fco, label=labels, localorother=localorother
-    )
-    return True, r
-
-
 @internaltool(b'merge-local', mergeonly, precheck=_mergecheck)
-def _imergelocal(*args, **kwargs):
+def _imergelocal(repo, mynode, fcd, fco, fca, toolconf, backup, labels=None):
     """
     Like :merge, but resolve all conflicts non-interactively in favor
     of the local `p1()` changes."""
-    success, status = _imergeauto(localorother=b'local', *args, **kwargs)
-    return success, status, False
+    return _merge(
+        repo, mynode, fcd, fco, fca, toolconf, backup, labels, b'local'
+    )
 
 
 @internaltool(b'merge-other', mergeonly, precheck=_mergecheck)
-def _imergeother(*args, **kwargs):
+def _imergeother(repo, mynode, fcd, fco, fca, toolconf, backup, labels=None):
     """
     Like :merge, but resolve all conflicts non-interactively in favor
     of the other `p2()` changes."""
-    success, status = _imergeauto(localorother=b'other', *args, **kwargs)
-    return success, status, False
+    return _merge(
+        repo, mynode, fcd, fco, fca, toolconf, backup, labels, b'other'
+    )
 
 
 @internaltool(



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


More information about the Mercurial-patches mailing list