On Fri, Dec 14, 2012 at 12:02 PM, Larry Hastings <larry@hastings.org> wrote:
On 12/13/2012 05:21 PM, Trent Nelson wrote:
    Thoughts?

% hg help rebase

And also the histedit extension (analagous to "git rebase -i").

Both Git and Hg recognise there is a difference between interim commits and ones you want to publish and provide tools to revise a series of commits into a simpler set for publication to an official repo. The difference is that in Git this is allowed by default for all branches (which can create fun and games if someone upstream of you edits the history of you branch you used as a base for your own work), while Hg makes a distinction between different phases (secret -> draft -> public) and disallows operations that rewrite history if they would affect public changesets.

So the challenge with Mercurial over Git is ensuring the relevant branches stay in "draft" mode locally even though you want to push them to a server-side clone for distribution to the build servers. I know one way to do that would be to ask that the relevant clone be switched to non-publishing mode (see http://mercurial.selenic.com/wiki/Phases#Publishing_Repository). I don't know if there's another way to do it without altering the config on the server.

General intro to phases: http://www.logilab.org/blogentry/88203

Cheers,
Nick.

--
Nick Coghlan   |   ncoghlan@gmail.com   |   Brisbane, Australia