Differences between revisions 3 and 4
Revision 3 as of 2014-08-14 00:01:10
Size: 168
Comment: Drop the old content of the page (not so devel content)
Revision 4 as of 2014-08-14 00:05:33
Size: 1120
Comment: adding V1 format information
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:

== Obsstore Format ==


Markers are stored in an append-only file stored in
'.hg/store/obsstore'.

== V1 (current) Format ==

(see in line document for latest data)

The file starts with a version header:

 - 1 unsigned byte: version number, starting at zero.


The header is followed by the markers. Each marker is made of:

 - 1 unsigned byte: number of new changesets "N", can be zero.

 - 1 unsigned 32-bits integer: metadata size "M" in bytes.

 - 1 byte: a bit field. It is reserved for flags used in common
   obsolete marker operations, to avoid repeated decoding of metadata
   entries.

 - 20 bytes: obsoleted changeset identifier.

 - N*20 bytes: new changesets identifiers.

 - M bytes: metadata as a sequence of nul-terminated strings. Each
   string contains a key and a value, separated by a colon ':', without
   additional encoding. Keys cannot contain '\0' or ':' and values
   cannot contain '\0'.

Implementation Details about Changesets Evolution

/!\ This page is intended for developer

For a user perspective have a look at the ChangesetEvolution page.

1. Obsstore Format

Markers are stored in an append-only file stored in '.hg/store/obsstore'.

2. V1 (current) Format

(see in line document for latest data)

The file starts with a version header:

  • - 1 unsigned byte: version number, starting at zero.

The header is followed by the markers. Each marker is made of:

  • - 1 unsigned byte: number of new changesets "N", can be zero. - 1 unsigned 32-bits integer: metadata size "M" in bytes. - 1 byte: a bit field. It is reserved for flags used in common
    • obsolete marker operations, to avoid repeated decoding of metadata entries.
    - 20 bytes: obsoleted changeset identifier. - N*20 bytes: new changesets identifiers. - M bytes: metadata as a sequence of nul-terminated strings. Each
    • string contains a key and a value, separated by a colon ':', without additional encoding. Keys cannot contain '\0' or ':' and values cannot contain '\0'.

ChangesetEvolutionDevel (last edited 2020-05-29 08:03:48 by aayjaychan)