Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

After pushing to a review repository, "abort: can't rebase immutable changeset" on rebase

Tags:

We have a code review repository where people hg push -f all sorts of stuff. After reviews are complete, we pull from the project's central repository, rebase, and push. I recently upgraded to mercurial 2.1 and get this message:

abort: can't rebase immutable changeset 43ab8134e7af (see hg help phases for details) 

when I try to hg pull --rebase from the central repository. How do I fix it?

like image 295
nmichaels Avatar asked Mar 21 '12 18:03

nmichaels


1 Answers

In the review repository's .hg/hgrc file, add these lines:

[phases] publish = False 

The problem is due to a new feature in mercurial 2.1 called phases. It's great. Here is a nice introduction to its use.

To make the changesets in question mutable right now, use hg phase -f -d REV to force REV to be mutable again. Once the hgrc file has been changed, you shouldn't have to do that any more.

As a side note, hg push -f is lame. Make an alias hg review that pushes with -f to that repository.

like image 134
nmichaels Avatar answered Sep 20 '22 19:09

nmichaels