history punching

Dean Roehrich dean.roehrich at sun.com
Wed Jan 24 16:37:26 UTC 2007


So, to refresh, I'd like to pick up this history-punching thread:

http://marc.theaimsgroup.com/?l=mercurial&m=116362568907074&w=2

As was described earlier, this feature does become important when publishing
repositories of formerly-proprietary code.

>From our perspective (disclaimer: I'm not in the opensolaris camp--I'm working
on something else) ideally we would want to have push/pull work cleanly
between our internal repo and the external repo, but the external repo must
not contain changesets or log history prior to a specified date/changeset.

Or maybe we need a way for 'hg import' to preserve changeset id, or at least
to count the original changeset id as a parent changeset id.  I'm concerned
that when people outside Sun specify a changeset id it won't have meaning for
Sun's developers using the internal repo--an unfortunate disconnect.

What about using 'hg bundle --base' and some option on 'hg unbundle' to unpack
that into a new repo in a sensible way that still preserves its connection to
the parent repo so we can move it forward via 'hg push' from the internal
parent?

At this point, without history punching, I imagine we'd have to 'hg archive'
from our internal repo to seed the external repo.  Then we have to 'hg export'
and 'hg import'.  I guess I don't like the way this is going.  I need a better
idea :) With this plan there's no need for internal development staff to
switch from CVS to Hg because we could just continue to use cvsps and friends.
We'd still be creating home-grown scripts and tools to manage the external
archive rather than letting the SCM do the work for us.

Dean



More information about the Mercurial mailing list