diff 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
line wrap: on
line diff
--- a/mercurial/revlogutils/constants.py	Mon Apr 05 12:20:52 2021 +0200
+++ b/mercurial/revlogutils/constants.py	Mon Apr 05 12:21:01 2021 +0200
@@ -44,6 +44,19 @@
 # 20 bytes: nodeid
 INDEX_ENTRY_V0 = struct.Struct(b">4l20s20s20s")
 
+## index v1
+#  6 bytes: offset
+#  2 bytes: flags
+#  4 bytes: compressed length
+#  4 bytes: uncompressed length
+#  4 bytes: base rev
+#  4 bytes: link rev
+#  4 bytes: parent 1 rev
+#  4 bytes: parent 2 rev
+# 32 bytes: nodeid
+INDEX_ENTRY_V1 = struct.Struct(b">Qiiiiii20s12x")
+assert INDEX_ENTRY_V1.size == 32 * 2
+
 # revlog index flags
 
 # For historical reasons, revlog's internal flags were exposed via the