Mercurial > public > mercurial-scm > hg
comparison mercurial/filemerge.py @ 46139:3ca5ca380a34
filemerge: add support for the new "mergediff" marker style to premerge
This adds support for the new "mergediff" conflict marker style to
"merge-tools.<tool>.premerge" (the new value is called
"keep-mergediff").
Differential Revision: https://phab.mercurial-scm.org/D9606
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Mon, 14 Dec 2020 18:09:37 -0800 |
parents | bdc2bf68f19e |
children | 0c95b59a89f1 |
comparison
equal
deleted
inserted
replaced
46138:34f2c634c8f6 | 46139:3ca5ca380a34 |
---|---|
406 return 1 | 406 return 1 |
407 unused, unused, unused, back = files | 407 unused, unused, unused, back = files |
408 | 408 |
409 ui = repo.ui | 409 ui = repo.ui |
410 | 410 |
411 validkeep = [b'keep', b'keep-merge3'] | 411 validkeep = [b'keep', b'keep-merge3', b'keep-mergediff'] |
412 | 412 |
413 # do we attempt to simplemerge first? | 413 # do we attempt to simplemerge first? |
414 try: | 414 try: |
415 premerge = _toolbool(ui, tool, b"premerge", not binary) | 415 premerge = _toolbool(ui, tool, b"premerge", not binary) |
416 except error.ConfigError: | 416 except error.ConfigError: |
421 _(b"%s.premerge not valid ('%s' is neither boolean nor %s)") | 421 _(b"%s.premerge not valid ('%s' is neither boolean nor %s)") |
422 % (tool, premerge, _valid) | 422 % (tool, premerge, _valid) |
423 ) | 423 ) |
424 | 424 |
425 if premerge: | 425 if premerge: |
426 if premerge == b'keep-merge3': | 426 mode = b'merge' |
427 if premerge in {b'keep-merge3', b'keep-mergediff'}: | |
427 if not labels: | 428 if not labels: |
428 labels = _defaultconflictlabels | 429 labels = _defaultconflictlabels |
429 if len(labels) < 3: | 430 if len(labels) < 3: |
430 labels.append(b'base') | 431 labels.append(b'base') |
431 r = simplemerge.simplemerge(ui, fcd, fca, fco, quiet=True, label=labels) | 432 if premerge == b'keep-mergediff': |
433 mode = b'mergediff' | |
434 r = simplemerge.simplemerge( | |
435 ui, fcd, fca, fco, quiet=True, label=labels, mode=mode | |
436 ) | |
432 if not r: | 437 if not r: |
433 ui.debug(b" premerge successful\n") | 438 ui.debug(b" premerge successful\n") |
434 return 0 | 439 return 0 |
435 if premerge not in validkeep: | 440 if premerge not in validkeep: |
436 # restore from backup and try again | 441 # restore from backup and try again |