Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/filemerge.py @ 48583: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 |
comparison
equal
deleted
inserted
replaced
48582:0dc698c91ca0 | 48583:c91418480cb0 |
---|---|
419 _(b"%s.premerge not valid ('%s' is neither boolean nor %s)") | 419 _(b"%s.premerge not valid ('%s' is neither boolean nor %s)") |
420 % (tool, premerge, _valid) | 420 % (tool, premerge, _valid) |
421 ) | 421 ) |
422 | 422 |
423 if premerge: | 423 if premerge: |
424 if not labels: | |
425 labels = _defaultconflictlabels | |
426 if len(labels) < 3: | |
427 labels.append(b'base') | |
424 mode = b'merge' | 428 mode = b'merge' |
425 if premerge in {b'keep-merge3', b'keep-mergediff'}: | 429 if premerge == b'keep-mergediff': |
426 if not labels: | 430 mode = b'mergediff' |
427 labels = _defaultconflictlabels | 431 elif premerge == b'keep-merge3': |
428 if len(labels) < 3: | 432 mode = b'merge3' |
429 labels.append(b'base') | |
430 if premerge == b'keep-mergediff': | |
431 mode = b'mergediff' | |
432 r = simplemerge.simplemerge( | 433 r = simplemerge.simplemerge( |
433 ui, fcd, fca, fco, quiet=True, label=labels, mode=mode | 434 ui, fcd, fca, fco, quiet=True, label=labels, mode=mode |
434 ) | 435 ) |
435 if not r: | 436 if not r: |
436 ui.debug(b" premerge successful\n") | 437 ui.debug(b" premerge successful\n") |
530 side of the merge and one for the base content.""" | 531 side of the merge and one for the base content.""" |
531 if not labels: | 532 if not labels: |
532 labels = _defaultconflictlabels | 533 labels = _defaultconflictlabels |
533 if len(labels) < 3: | 534 if len(labels) < 3: |
534 labels.append(b'base') | 535 labels.append(b'base') |
535 return _imerge(repo, mynode, fcd, fco, fca, toolconf, backup, labels) | 536 return _merge( |
537 repo, mynode, fcd, fco, fca, toolconf, backup, labels, b'merge3' | |
538 ) | |
536 | 539 |
537 | 540 |
538 @internaltool( | 541 @internaltool( |
539 b'merge3-lie-about-conflicts', | 542 b'merge3-lie-about-conflicts', |
540 fullmerge, | 543 fullmerge, |