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,