Comments
Patch
@@ -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
@@ -41,6 +41,7 @@
FLAG_GENERALDELTA,
FLAG_INLINE_DATA,
INDEX_ENTRY_V0,
+ INDEX_ENTRY_V1,
REVLOGV0,
REVLOGV1,
REVLOGV1_FLAGS,
@@ -325,18 +326,6 @@
return INDEX_ENTRY_V0.pack(*e2)
-# index ng:
-# 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
-indexformatng = struct.Struct(b">Qiiiiii20s12x")
-indexformatng_pack = indexformatng.pack
versionformat = struct.Struct(b">I")
versionformat_pack = versionformat.pack
versionformat_unpack = versionformat.unpack
@@ -348,7 +337,7 @@
class revlogio(object):
def __init__(self):
- self.size = indexformatng.size
+ self.size = INDEX_ENTRY_V1.size
def parseindex(self, data, inline):
# call the C implementation to parse the index data
@@ -356,7 +345,7 @@
return index, cache
def packentry(self, entry, node, version, rev):
- p = indexformatng_pack(*entry)
+ p = INDEX_ENTRY_V1.pack(*entry)
if rev == 0:
p = versionformat_pack(version) + p[4:]
return p
@@ -17,6 +17,7 @@
)
from ..revlogutils import nodemap as nodemaputil
+from ..revlogutils import constants as revlog_constants
stringio = pycompat.bytesio
@@ -43,13 +44,13 @@
class BaseIndexObject(object):
# Format of an index entry according to Python's `struct` language
- index_format = b">Qiiiiii20s12x"
+ index_format = revlog_constants.INDEX_ENTRY_V1.format
# Size of a C unsigned long long int, platform independent
big_int_size = struct.calcsize(b'>Q')
# Size of a C long int, platform independent
int_size = struct.calcsize(b'>i')
# Size of the entire index format
- index_size = struct.calcsize(index_format)
+ index_size = revlog_constants.INDEX_ENTRY_V1.size
# An empty index entry, used as a default value to be overridden, or nullrev
null_item = (0, 0, 0, -1, -1, -1, -1, nullid)