# HG changeset patch # User Martin von Zweigbergk # Date 1489257344 28800 # Node ID 681046de87f1bc138243bc9272ae1f1c546d8497 # Parent 295625f1296bda9c507b9025177c4f2452408cc3 rebase: abort if *any* commit in rebase set is public diff -r 295625f1296b -r 681046de87f1 hgext/rebase.py --- a/hgext/rebase.py Sat Mar 11 13:53:14 2017 -0500 +++ b/hgext/rebase.py Sat Mar 11 10:35:44 2017 -0800 @@ -326,11 +326,11 @@ self.ui.status(_('nothing to rebase\n')) return _nothingtorebase() - root = min(rebaseset) - if not self.keepf and not self.repo[root].mutable(): - raise error.Abort(_("can't rebase public changeset %s") - % self.repo[root], - hint=_("see 'hg help phases' for details")) + for root in self.repo.set('roots(%ld)', rebaseset): + if not self.keepf and not root.mutable(): + raise error.Abort(_("can't rebase public changeset %s") + % root, + hint=_("see 'hg help phases' for details")) (self.originalwd, self.target, self.state) = result if self.collapsef: diff -r 295625f1296b -r 681046de87f1 tests/test-rebase-scenario-global.t --- a/tests/test-rebase-scenario-global.t Sat Mar 11 13:53:14 2017 -0500 +++ b/tests/test-rebase-scenario-global.t Sat Mar 11 10:35:44 2017 -0800 @@ -329,6 +329,10 @@ abort: can't rebase public changeset e1c4361dd923 (see 'hg help phases' for details) [255] + $ hg rebase -d 5 -r '1 + (6::)' + abort: can't rebase public changeset e1c4361dd923 + (see 'hg help phases' for details) + [255] $ hg rebase -d 5 -b 6 --keep rebasing 6:e1c4361dd923 "C"