Differences between revisions 10 and 11
Revision 10 as of 2014-03-07 23:54:46
Size: 1394
Comment: fix link
Revision 11 as of 2014-03-07 23:58:21
Size: 1403
Editor: DavidSoria
Comment:
Deletions are marked like this. Additions are marked like this.
Line 28: Line 28:
{{{#!C
Line 49: Line 50:

}}}

Note:

This page is primarily intended for developers of Mercurial.

This page describes the current plan to get a more modern and complete bundle format. (for old content of this page check BundleFormatHG19)

Contents

(current content is copy pasted from 2.9 sprint note)

New bundle format

lightweight new manifest general delta bookmarks phase boundaries obsolete markers >sha1 support pushkey extensible for new features (required and optional) progress information resumable? transaction commit markers?

  • It's possible to envision a format that sends a change, its manifest, and filenodes in each chunk rather than sending all changesets, then all manifests, etc.

capabilities

New header:

type Header struct {
    length       uint32
    lNode        byte
    node         [lNode]byte

    // if empty (lP1 ==0) then default to previous node in the stream
    lP1          byte
    p1           [lP1]byte

    // if empty, nullrev
    lP2          byte
    p2           [lP2]byte

    // if empty, self (for changelogs)
    lLinknode    byte
    linknode     [lLinknode]byte

    // if empty, p1
    lDeltaParent byte
    deltaParent  [lDeltaParent]byte 
}

We'll modify the existing changegroup type so it can pretend to be a new changegroup that just has a variety of empty fields. Progress information fields might be optional.


CategoryNewFeatures

BundleFormat2 (last edited 2018-02-10 00:05:58 by AviKelman)