Mercurial > public > mercurial-scm > hg
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(