hg equivalent to "bk collapse"?

Giorgos Keramidas keramida at ceid.upatras.gr
Sat Mar 17 16:19:09 UTC 2007


On 2007-03-16 14:08, Mike Kupfer <mike.kupfer at sun.com> wrote:
> "Mark" == Mark Atwood <me at mark.atwood.name> writes:
> Mark> With "bk collapse", you can do a lot of checkins into your local
> Mark> tree, which generate a lot of change history.  And then "collapse"
> Mark> them all together, for when you checkin to the upstream tree.
> Mark> Thus everyone else doesn't have to see all your "nope, that didnt
> Mark> work either, trying something else" changelog entries.
> 
> We're working on something like that for OpenSolaris's use of
> Mercurial.  Unfortunately, I don't know of any web pages that I can
> point you at for more information.  If you want, you could try asking
> for details on tools-discuss at opensolaris.org.

I'm using MQ to do something similar so far.

For instance, when I'm working on two bugs, which should be resolved in
the same commit, I make a clone of the repository and start with:

  cd ws/project
  hg clone trunk gker
  cd gker
  hg qinit -c
  hg qnew -fm '144361 summary of bug 144361' 144361
  hg qnew -fm '144342 summary of bug 144361' 144342

This lets me work with the two patches as a 'pair', but I can also
push/pop them at will or even re-order them.

At various times, when I have a 'stable' version of the patches which I
want to test, I use qcommit to save the patch state:

  hg qcommit -m 'summary of patch state'

When I'm satisfied that it all works, and I want to push the patches
upstream, I pop them off the tip of the 'gker' repository, and I use 'hg
import' to make them real changesets on top of the tip.

  hg qpop -a
  hg import .hg/patches/144361 && hg qdelete 144361
  hg import .hg/patches/144342 && hg qdelete 144342

Then I can either 'hg push' two changesets, or hg diff with the last
version of the trunk tip which I pulled and 'import' that diff.

Just my two cents,
Giorgos




More information about the Mercurial mailing list