Differences between revisions 9 and 10
Revision 9 as of 2014-03-07 19:26:26
Size: 1390
Comment:
Revision 10 as of 2014-03-07 23:54:46
Size: 1394
Comment: fix link
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
This page describes the current plan to get a more modern and complete bundle format. (for old content of this page check BundleFormatHG19) This page describes the current plan to get a more modern and complete bundle format. (for old content of this page check [[BundleFormatHG19]])

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)