Commit b42ce825308 by Martin von Zweigbergk

rebase: stop relying on having two parents to resume rebase

I'm about to make it so we don't have two parents when a rebase is
interrupted (unless we're just rebasing on a merge commit). The code
for detecting if we're resuming a rebase relied on having two parents,
so this patch rewrites that to instead set a boolean when we resume.

Note that `self.resume` in the new condition implies `not
self.inmemory` (rebase cannot be resumed in memory), so that's why
that part can be omitted.

Differential Revision: https://phab.mercurial-scm.org/D7826
parent 14d0e89520a
......@@ -178,6 +178,7 @@ class rebaseruntime(object):
# --continue or --abort)), the original repo should be used so
# visibility-dependent revsets are correct.
self.prepared = False
self.resume = False
self._repo = repo
self.ui = ui
......@@ -367,6 +368,7 @@ class rebaseruntime(object):
_checkobsrebase(self.repo, self.ui, obsoleteset, skippedset)
def _prepareabortorcontinue(self, isabort, backup=True, suppwarns=False):
self.resume = True
try:
self.restorestatus()
self.collapsemsg = restorecollapsemsg(self.repo, isabort)
......@@ -606,8 +608,9 @@ class rebaseruntime(object):
self.skipped,
self.obsoletenotrebased,
)
if not self.inmemory and len(repo[None].parents()) == 2:
if self.resume and self.wctx.p1().rev() == p1:
repo.ui.debug(b'resuming interrupted rebase\n')
self.resume = False
else:
overrides = {(b'ui', b'forcemerge'): opts.get(b'tool', b'')}
with ui.configoverride(overrides, b'rebase'):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment