D7826: rebase: stop relying on having two parents to resume rebase
Closed by commit rHGb42ce825308e: rebase: stop relying on having two parents to resume rebase (authored by martinvonz). This revision was automatically updated to reflect the committed changes. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D7826?vs=20096=20136 CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D7826/new/ REVISION DETAIL https://phab.mercurial-scm.org/D7826 AFFECTED FILES hgext/rebase.py CHANGE DETAILS diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -178,6 +178,7 @@ # --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 @@ _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 @@ 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'): To: martinvonz, #hg-reviewers, durin42 Cc: mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D7826: rebase: stop relying on having two parents to resume rebase
martinvonz updated this revision to Diff 20096. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D7826?vs=19860=20096 BRANCH default CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D7826/new/ REVISION DETAIL https://phab.mercurial-scm.org/D7826 AFFECTED FILES hgext/rebase.py CHANGE DETAILS diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -178,6 +178,7 @@ # --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 @@ _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 @@ 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'): To: martinvonz, #hg-reviewers Cc: mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D7826: rebase: stop relying on having two parents to resume rebase
martinvonz updated this revision to Diff 19860. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D7826?vs=19704=19860 BRANCH default CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D7826/new/ REVISION DETAIL https://phab.mercurial-scm.org/D7826 AFFECTED FILES hgext/rebase.py CHANGE DETAILS diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -178,6 +178,7 @@ # --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 @@ _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 @@ 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'): To: martinvonz, #hg-reviewers Cc: mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D7826: rebase: stop relying on having two parents to resume rebase
martinvonz updated this revision to Diff 19704. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D7826?vs=19344=19704 BRANCH default CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D7826/new/ REVISION DETAIL https://phab.mercurial-scm.org/D7826 AFFECTED FILES hgext/rebase.py CHANGE DETAILS diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -177,6 +177,7 @@ # --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 @@ -366,6 +367,7 @@ _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) @@ -605,8 +607,9 @@ 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'): To: martinvonz, #hg-reviewers Cc: mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D7826: rebase: stop relying on having two parents to resume rebase
martinvonz updated this revision to Diff 19344. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D7826?vs=19146=19344 BRANCH default CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D7826/new/ REVISION DETAIL https://phab.mercurial-scm.org/D7826 AFFECTED FILES hgext/rebase.py CHANGE DETAILS diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -177,6 +177,7 @@ # --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 @@ -366,6 +367,7 @@ _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) @@ -605,8 +607,9 @@ 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'): To: martinvonz, #hg-reviewers Cc: mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D7826: rebase: stop relying on having two parents to resume rebase
martinvonz created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY 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. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D7826 AFFECTED FILES hgext/rebase.py CHANGE DETAILS diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -177,6 +177,7 @@ # --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 @@ -366,6 +367,7 @@ _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) @@ -605,8 +607,9 @@ 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'): To: martinvonz, #hg-reviewers Cc: mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel