Wireprotocol changes for parentdelta

Matt Mackall mpm at selenic.com
Sun Aug 1 14:30:31 CDT 2010


On Mon, 2010-08-02 at 00:35 +0530, Vishakh Harikumar wrote:
> 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.

Is the delta parent option above not sufficient?

> 2 header to identify shallow root for which bundle was created
>   e.g. when a new repo is created from a bundled shallow clone

Uh, tell us more? How do you envision this working?

We need enough information here so that one person can write one bundle
format that meets all the requirements.

-- 
Mathematics is the supreme nostalgia of our time.




More information about the Mercurial-devel mailing list