Mercurial > public > mercurial-scm > hg
comparison mercurial/filemerge.py @ 48755:6ae3c97a0919
simplemerge: move printing of merge result to extension
The `mercurial.simplemerge` module still has some command-lines
processing that doesn't belong in such a low-level module. This patch
moves the handling of `hg simplemerge --print` to the extension by
having `mercurial.simplemerge.simplemerge()` return the merged text.
Differential Revision: https://phab.mercurial-scm.org/D12148
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 14 Jan 2022 08:17:13 -0800 |
parents | d9af7c1fb619 |
children | 86e4b86df932 |
comparison
equal
deleted
inserted
replaced
48754:d9602f0df4f3 | 48755:6ae3c97a0919 |
---|---|
440 mode = b'merge3' | 440 mode = b'merge3' |
441 if any( | 441 if any( |
442 stringutil.binary(input.text()) for input in (local, base, other) | 442 stringutil.binary(input.text()) for input in (local, base, other) |
443 ): | 443 ): |
444 return 1 # continue merging | 444 return 1 # continue merging |
445 r = simplemerge.simplemerge( | 445 merged_text, conflicts = simplemerge.simplemerge( |
446 ui, local, base, other, quiet=True, mode=mode | 446 ui, local, base, other, mode=mode |
447 ) | 447 ) |
448 if not r: | 448 # fcd.flags() already has the merged flags (done in |
449 # mergestate.resolve()) | |
450 local.fctx.write(merged_text, local.fctx.flags()) | |
451 if not conflicts: | |
449 ui.debug(b" premerge successful\n") | 452 ui.debug(b" premerge successful\n") |
450 return 0 | 453 return 0 |
451 if premerge not in validkeep: | 454 if premerge not in validkeep: |
452 # restore from backup and try again | 455 # restore from backup and try again |
453 _restorebackup(local.fctx, backup) | 456 _restorebackup(local.fctx, backup) |
487 _verifytext(local, ui) | 490 _verifytext(local, ui) |
488 _verifytext(base, ui) | 491 _verifytext(base, ui) |
489 _verifytext(other, ui) | 492 _verifytext(other, ui) |
490 except error.Abort: | 493 except error.Abort: |
491 return True, True, False | 494 return True, True, False |
492 r = simplemerge.simplemerge(ui, local, base, other, mode=mode) | 495 else: |
493 return True, r, False | 496 merged_text, conflicts = simplemerge.simplemerge( |
497 ui, local, base, other, mode=mode | |
498 ) | |
499 # fcd.flags() already has the merged flags (done in | |
500 # mergestate.resolve()) | |
501 local.fctx.write(merged_text, local.fctx.flags()) | |
502 return True, conflicts, False | |
494 | 503 |
495 | 504 |
496 @internaltool( | 505 @internaltool( |
497 b'union', | 506 b'union', |
498 fullmerge, | 507 fullmerge, |