comparison mercurial/revlogutils/constants.py @ 46857:cc65cea90edb

revlog: move the details of revlog "v1" index inside revlog.utils.constants The revlog module is quite large and this kind of format information would handy for other module. So let us start to gather this information about the format in a more appropriate place. We update various reference to this information to use the new "source of truth" in the process. Differential Revision: https://phab.mercurial-scm.org/D10304
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Mon, 05 Apr 2021 12:21:01 +0200
parents 34e1fa4b548a
children 85e3a630cad9
comparison
equal deleted inserted replaced
46856:34e1fa4b548a 46857:cc65cea90edb
42 # 20 bytes: parent 1 nodeid 42 # 20 bytes: parent 1 nodeid
43 # 20 bytes: parent 2 nodeid 43 # 20 bytes: parent 2 nodeid
44 # 20 bytes: nodeid 44 # 20 bytes: nodeid
45 INDEX_ENTRY_V0 = struct.Struct(b">4l20s20s20s") 45 INDEX_ENTRY_V0 = struct.Struct(b">4l20s20s20s")
46 46
47 ## index v1
48 # 6 bytes: offset
49 # 2 bytes: flags
50 # 4 bytes: compressed length
51 # 4 bytes: uncompressed length
52 # 4 bytes: base rev
53 # 4 bytes: link rev
54 # 4 bytes: parent 1 rev
55 # 4 bytes: parent 2 rev
56 # 32 bytes: nodeid
57 INDEX_ENTRY_V1 = struct.Struct(b">Qiiiiii20s12x")
58 assert INDEX_ENTRY_V1.size == 32 * 2
59
47 # revlog index flags 60 # revlog index flags
48 61
49 # For historical reasons, revlog's internal flags were exposed via the 62 # For historical reasons, revlog's internal flags were exposed via the
50 # wire protocol and are even exposed in parts of the storage APIs. 63 # wire protocol and are even exposed in parts of the storage APIs.
51 64