comparison mercurial/revlog.py @ 51188:13f58ce70299

rust-revlog: teach the revlog opening code to read the repo options This will become necessary as we start writing revlog data from Rust.
author Rapha?l Gom?s <rgomes@octobus.net>
date Mon, 18 Sep 2023 17:11:11 +0200
parents 6ec8387eb0be
children 633408a0f2e2
comparison
equal deleted inserted replaced
51187:6ec8387eb0be 51188:13f58ce70299
14 14
15 15
16 import binascii 16 import binascii
17 import collections 17 import collections
18 import contextlib 18 import contextlib
19 import functools
19 import io 20 import io
20 import os 21 import os
21 import struct 22 import struct
22 import weakref 23 import weakref
23 import zlib 24 import zlib
222 223
223 else: 224 else:
224 parse_index_v1_nodemap = None 225 parse_index_v1_nodemap = None
225 226
226 227
227 def parse_index_v1_mixed(data, inline): 228 def parse_index_v1_mixed(data, inline, default_header):
228 index, cache = parse_index_v1(data, inline) 229 index, cache = parse_index_v1(data, inline)
229 return rustrevlog.MixedIndex(index, data), cache 230 return rustrevlog.MixedIndex(index, data, default_header), cache
230 231
231 232
232 # corresponds to uncompressed length of indexformatng (2 gigs, 4-byte 233 # corresponds to uncompressed length of indexformatng (2 gigs, 4-byte
233 # signed integer) 234 # signed integer)
234 _maxentrysize = 0x7FFFFFFF 235 _maxentrysize = 0x7FFFFFFF
1692 elif self._format_version == CHANGELOGV2: 1693 elif self._format_version == CHANGELOGV2:
1693 self._parse_index = parse_index_cl_v2 1694 self._parse_index = parse_index_cl_v2
1694 elif devel_nodemap: 1695 elif devel_nodemap:
1695 self._parse_index = parse_index_v1_nodemap 1696 self._parse_index = parse_index_v1_nodemap
1696 elif use_rust_index: 1697 elif use_rust_index:
1697 self._parse_index = parse_index_v1_mixed 1698 self._parse_index = functools.partial(
1699 parse_index_v1_mixed, default_header=new_header
1700 )
1698 try: 1701 try:
1699 d = self._parse_index(index_data, self._inline) 1702 d = self._parse_index(index_data, self._inline)
1700 index, chunkcache = d 1703 index, chunkcache = d
1701 use_nodemap = ( 1704 use_nodemap = (
1702 not self._inline 1705 not self._inline