diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -413,15 +413,6 @@ if not destmap: return _nothingtorebase() - rebaseset = destmap.keys() - if not self.keepf: - try: - rewriteutil.precheck(self.repo, rebaseset, action=b'rebase') - except error.Abort as e: - if e.hint is None: - e.hint = _(b'use --keep to keep original changesets') - raise e - result = buildstate(self.repo, destmap, self.collapsef) if not result: @@ -450,6 +441,15 @@ # Calculate self.obsolete_* sets self._handleskippingobsolete() + rebaseset = destmap.keys() + if not self.keepf: + try: + rewriteutil.precheck(self.repo, rebaseset, action=b'rebase') + except error.Abort as e: + if e.hint is None: + e.hint = _(b'use --keep to keep original changesets') + raise e + self.prepared = True def _assignworkingcopy(self): diff --git a/tests/test-rebase-scenario-global.t b/tests/test-rebase-scenario-global.t --- a/tests/test-rebase-scenario-global.t +++ b/tests/test-rebase-scenario-global.t @@ -325,9 +325,8 @@ $ hg pull --config phases.publish=True -q -r 6 . # update phase of 6 $ hg rebase -d 0 -b 6 - abort: cannot rebase public changesets - (see 'hg help phases' for details) - [10] + nothing to rebase + [1] $ hg rebase -d 5 -b 6 abort: cannot rebase public changesets (see 'hg help phases' for details)