Wireprotocol changes for parentdelta

Vishakh Harikumar vsh426 at gmail.com
Sun Aug 1 14:05:14 CDT 2010


On Sun, Aug 1, 2010 at 7:19 PM, Matt Mackall <mpm at selenic.com> wrote:
> Fact is, we've already done a large amount of that thinking ahead at the
> 1.5 sprint. But no one's going to tell you about it unless you ask.
> Here's a really obvious feature that the new bundle format also needs to
> support: shallow clone. Another is long hashes.
>
> The bundle chunk format looks like:
>
> 4  length
> 20 node
> 20 p1
> 20 p2
> 20 changeset hash (aka linkrev)
> *  data
>
> It's going to need to be extended to something like:
>
> 4 flags
> 4 length
> n node
> n p1
> n p2
> n delta parent (either p1, p2, n-1, or possibly null?)
> n changeset hash
> * data
>
> http://mercurial.selenic.com/wiki/BundleFormat

Bundle format for shallow clones,
1 delta parent
  now all groups start with a diff against p1 of the first rev. for
  shallowclones i am sending the full revision in cases where
  p1 is not available.
2 header to identify shallow root for which bundle was created
  e.g. when a new repo is created from a bundled shallow clone

regarding commands changegroup2 supporting shallowroot arg
should be sufficient for shallowclones.

-- 
vsh


More information about the Mercurial-devel mailing list