Mercurial > public > mercurial-scm > hg-stable
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: |