comparison mercurial/revlog.py @ 51139:e9eac01c57f3 stable

revlog: add a `may_inline` argument to revlog This allow for a clean skipping of the inline feature when needed, for example by censor.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sat, 02 Dec 2023 02:12:21 +0100
parents c136c797740e
children 962974a5d068
comparison
equal deleted inserted replaced
51138:c136c797740e 51139:e9eac01c57f3
1306 try_split=False, 1306 try_split=False,
1307 canonical_parent_order=True, 1307 canonical_parent_order=True,
1308 data_config=None, 1308 data_config=None,
1309 delta_config=None, 1309 delta_config=None,
1310 feature_config=None, 1310 feature_config=None,
1311 may_inline=True, # may inline new revlog
1311 ): 1312 ):
1312 """ 1313 """
1313 create a revlog object 1314 create a revlog object
1314 1315
1315 opener is a function that abstracts the file opening operation 1316 opener is a function that abstracts the file opening operation
1331 self._sidedatafile = None 1332 self._sidedatafile = None
1332 self._nodemap_file = None 1333 self._nodemap_file = None
1333 self.postfix = postfix 1334 self.postfix = postfix
1334 self._trypending = trypending 1335 self._trypending = trypending
1335 self._try_split = try_split 1336 self._try_split = try_split
1337 self._may_inline = may_inline
1336 self.opener = opener 1338 self.opener = opener
1337 if persistentnodemap: 1339 if persistentnodemap:
1338 self._nodemap_file = nodemaputil.get_nodemap_file(self) 1340 self._nodemap_file = nodemaputil.get_nodemap_file(self)
1339 1341
1340 assert target[0] in ALL_KINDS 1342 assert target[0] in ALL_KINDS
1596 compute_rank = opts.get(b'changelogv2.compute-rank', True) 1598 compute_rank = opts.get(b'changelogv2.compute-rank', True)
1597 self.feature_config.compute_rank = compute_rank 1599 self.feature_config.compute_rank = compute_rank
1598 elif b'revlogv2' in opts: 1600 elif b'revlogv2' in opts:
1599 new_header = REVLOGV2 1601 new_header = REVLOGV2
1600 elif b'revlogv1' in opts: 1602 elif b'revlogv1' in opts:
1601 new_header = REVLOGV1 | FLAG_INLINE_DATA 1603 new_header = REVLOGV1
1604 if self._may_inline:
1605 new_header |= FLAG_INLINE_DATA
1602 if b'generaldelta' in opts: 1606 if b'generaldelta' in opts:
1603 new_header |= FLAG_GENERALDELTA 1607 new_header |= FLAG_GENERALDELTA
1604 elif b'revlogv0' in self.opener.options: 1608 elif b'revlogv0' in self.opener.options:
1605 new_header = REVLOGV0 1609 new_header = REVLOGV0
1606 else: 1610 else: