[PATCH 1 of 3] clone to master bookmark if available

Arne Babenhauserheide arne_bab at web.de
Fri Nov 4 09:12:07 CDT 2011


Matt Mackall <mpm <at> selenic.com> writes:
> On Thu, 2011-11-03 at 13:11 +0100, arne_bab <at> web.de wrote:
> >  
> > +            # clone all bookmarks
…
> This is practically the Platonic ideal of a change that wants to be its
> own patch. Please send this as a patch by itself for discussion first.

I just realized, that I don’t have really good tools for doing that, especially
for doing it with already pushed changes. I could export, import --no-commit and
then record them all. Or I could read up on mq. In any case I would get a new
head and would have to close the old one.

Is there a nicer way to accomplish this?

Or will it only be available once we have phases/liquid? 

Best wishes, 
Arne

PS: It also just showed me that everyone has to edit recent history,
if the project wants clean history (instead of backing out commits or
just branching and merging/rebasing to have a clean path with two
commits instead of one). And that sending and reworking patches is
inconsistent with sacred history (I used rebasing and manual
export|import+strip and bitbucket-strip to get it done). 

It would be nice to have better tools to do the reworking. I think
liquid could help a lot (being able to share unfinished changes and
rework them publicly till they get frozen).

My main “problem” in splitting the patch was, that the change was in
one hunk, so record could not record only a part of the change and I
had to touch the file by hand.

Usecase: I worked in standard Mercurial and push to a shared repo. My
patch series was not accepted. Now I need to shuffle around and
split/squash commits. 

Ideally I should need only one extension for this, and the commands
should be as intuitive as rebasing: Give me these two disconnected
commits as squashed commit. And let me split this big commit into
several smaller ones. And give me a connected history at the end.


More information about the Mercurial-devel mailing list