Make a trivial repo: $ hg init blah $ cd blah $ echo a > a $ hg ci -Am0 adding a $ echo b > a $ hg ci -m1 Do a no-op rebase: $ hg rebase -s 1 -d 0 nothing to rebase Do it again after making everything public: $ hg phase --public -r 0: $ hg rebase -s 1 -d 0 abort: can't rebase immutable changeset 292174bf9db9 (see hg help phases for details) The latter error message is alarming. It should be the same as the first.
Fixed by http://selenic.com/repo/hg/rev/53eadcb814fd Siddharth Agarwal <sid0@fb.com> rebase: check no-op before checking phase (issue3891) This could lead to user confusion, because phases aren't really involved at all when attempting to perform a no-op rebase. (please test the fix)