613 repo.ui.debug(b'resuming interrupted rebase\n') |
613 repo.ui.debug(b'resuming interrupted rebase\n') |
614 self.resume = False |
614 self.resume = False |
615 else: |
615 else: |
616 overrides = {(b'ui', b'forcemerge'): opts.get(b'tool', b'')} |
616 overrides = {(b'ui', b'forcemerge'): opts.get(b'tool', b'')} |
617 with ui.configoverride(overrides, b'rebase'): |
617 with ui.configoverride(overrides, b'rebase'): |
618 rebasenode( |
618 try: |
619 repo, rev, p1, p2, base, self.collapsef, wctx=self.wctx, |
619 rebasenode( |
620 ) |
620 repo, |
|
621 rev, |
|
622 p1, |
|
623 p2, |
|
624 base, |
|
625 self.collapsef, |
|
626 wctx=self.wctx, |
|
627 ) |
|
628 except error.InMemoryMergeConflictsError: |
|
629 if self.dryrun: |
|
630 raise error.ConflictResolutionRequired(b'rebase') |
|
631 if self.collapsef: |
|
632 # TODO: Make the overlayworkingctx reflected |
|
633 # in the working copy here instead of re-raising |
|
634 # so the entire rebase operation is retried. |
|
635 raise |
|
636 ui.status( |
|
637 _( |
|
638 b"hit merge conflicts; rebasing that " |
|
639 b"commit again in the working copy\n" |
|
640 ) |
|
641 ) |
|
642 cmdutil.bailifchanged(repo) |
|
643 self.inmemory = False |
|
644 self._assignworkingcopy() |
|
645 mergemod.update( |
|
646 repo, |
|
647 p1, |
|
648 branchmerge=False, |
|
649 force=False, |
|
650 wc=self.wctx, |
|
651 ) |
|
652 rebasenode( |
|
653 repo, |
|
654 rev, |
|
655 p1, |
|
656 p2, |
|
657 base, |
|
658 self.collapsef, |
|
659 wctx=self.wctx, |
|
660 ) |
621 if not self.collapsef: |
661 if not self.collapsef: |
622 merging = p2 != nullrev |
662 merging = p2 != nullrev |
623 editform = cmdutil.mergeeditform(merging, b'rebase') |
663 editform = cmdutil.mergeeditform(merging, b'rebase') |
624 editor = cmdutil.getcommiteditor( |
664 editor = cmdutil.getcommiteditor( |
625 editform=editform, **pycompat.strkwargs(opts) |
665 editform=editform, **pycompat.strkwargs(opts) |
1098 overrides = {(b'rebase', b'singletransaction'): True} |
1138 overrides = {(b'rebase', b'singletransaction'): True} |
1099 with ui.configoverride(overrides, b'rebase'): |
1139 with ui.configoverride(overrides, b'rebase'): |
1100 _origrebase( |
1140 _origrebase( |
1101 ui, repo, action, opts, rbsrt, |
1141 ui, repo, action, opts, rbsrt, |
1102 ) |
1142 ) |
1103 except error.InMemoryMergeConflictsError: |
1143 except error.ConflictResolutionRequired: |
1104 ui.status(_(b'hit a merge conflict\n')) |
1144 ui.status(_(b'hit a merge conflict\n')) |
1105 return 1 |
1145 return 1 |
1106 except error.Abort: |
1146 except error.Abort: |
1107 needsabort = False |
1147 needsabort = False |
1108 raise |
1148 raise |