This page is primarily intended for developers of Mercurial.


RevlogNG was introduced with Mercurial 0.9 (see also Revlog).

1. Deficiencies in original revlog format

The original index format was:

2. RevlogNG format

2.1. RevlogNG header

As the offset of the first data chunk is always zero, the first 4 bytes (part of the offset) are used to indicate revlog version number and flags. all values are in big endian format.

RevlogNG also supports interleaving of index and data. This can greatly reduce storage overhead for smaller revlogs. In this format, the data chunk immediately follows its index entry. The position of the next index entry is calculated by adding the compressed length to the offset.

For how renames are stored see "Problems extracting renames", a reply by mpm posted on Feb 12, 2008, on the mercurial mailing list.

3. See Also



RevlogNG (last edited 2020-01-13 04:19:53 by aayjaychan)