diff -r 4292bed8da7c -r 47ffc754989a mercurial/pure/parsers.py --- a/mercurial/pure/parsers.py Mon May 03 12:21:15 2021 +0200 +++ b/mercurial/pure/parsers.py Mon May 03 12:21:25 2021 +0200 @@ -104,9 +104,14 @@ def append(self, tup): if '_nodemap' in vars(self): self._nodemap[tup[7]] = len(self) - data = self.index_format.pack(*tup) + data = self._pack_entry(tup) self._extra.append(data) + def _pack_entry(self, entry): + assert entry[8] == 0 + assert entry[9] == 0 + return self.index_format.pack(*entry[:8]) + def _check_index(self, i): if not isinstance(i, int): raise TypeError(b"expecting int indexes") @@ -299,6 +304,9 @@ def _unpack_entry(self, data): return self.index_format.unpack(data) + def _pack_entry(self, entry): + return self.index_format.pack(*entry) + def entry_binary(self, rev): """return the raw binary string representing a revision""" entry = self[rev]