diff -r 384ecbc8f8ca -r 8de68446a5bd mercurial/pure/parsers.py --- a/mercurial/pure/parsers.py Thu Feb 13 13:10:11 2025 +0100 +++ b/mercurial/pure/parsers.py Thu Feb 13 13:13:05 2025 +0100 @@ -736,7 +736,7 @@ class IndexObject(BaseIndexObject): - def __init__(self, data: ByteString): + def __init__(self, data: ByteString, uses_generaldelta=False): assert len(data) % self.entry_size == 0, ( len(data), self.entry_size, @@ -813,7 +813,7 @@ class InlinedIndexObject(BaseIndexObject): - def __init__(self, data, inline=0): + def __init__(self, data, inline=0, uses_generaldelta=False): self._data = data self._lgt = self._inline_scan(None) self._inline_scan(self._lgt) @@ -856,7 +856,10 @@ def parse_index2( - data: ByteString, inline, format=revlog_constants.REVLOGV1 + data: ByteString, + inline, + uses_generaldelta, + format=revlog_constants.REVLOGV1, ) -> tuple[IndexObject | InlinedIndexObject, tuple[int, ByteString] | None]: if format == revlog_constants.CHANGELOGV2: return parse_index_cl_v2(data) @@ -865,9 +868,9 @@ cls = IndexObject2 else: cls = IndexObject - return cls(data), None + return cls(data, uses_generaldelta), None cls = InlinedIndexObject - return cls(data, inline), (0, data) + return cls(data, inline, uses_generaldelta), (0, data) def parse_index_cl_v2(data): @@ -986,9 +989,9 @@ return self.index_format.pack(*data) -def parse_index_devel_nodemap(data, inline): - """like parse_index2, but alway return a PersistentNodeMapIndexObject""" - return PersistentNodeMapIndexObject(data), None +def parse_index_devel_nodemap(data, inline, uses_generaldelta): + """like parse_index2, but always return a PersistentNodeMapIndexObject""" + return PersistentNodeMapIndexObject(data, uses_generaldelta), None def parse_dirstate(dmap, copymap, st):