new history punching code

Chris Mason chris.mason at oracle.com
Thu Sep 21 20:58:41 UTC 2006


Hello everyone,

I've revived my history punching patch, you can pull it from here:

http://oss.oracle.com/mercurial/mason/punch

The code still needs some testing, and I haven't made verify aware of
punched revisions yet, so it will send out lots of errors.  But I wanted
to send along my current status for comments:

This adds hg clone --punch rev:rev to remove file revisions from
the resulting repo.  A punched file revision is indicated with a
length of -1 in the revlog index.

Changelogs are never punched because they are used in the
push/pull process, but manifests are punched as well.

The first revision after a hole in the revlog history may be
a delta against the last non-punched revision, or it may be a full
revision.

The changegroup protocol is changed slightly. A delta of -1 indicates a
punched revision.  This delta has a length of 4, and if it is seen by a
version of HG that is not punch capable, the push/pull will fail.





More information about the Mercurial mailing list