comparison mercurial/revlog.py @ 50661:978ffa09910b stable

revlog: move the computation of the split_index path in a property This is about to become more complex, so we gather the logic in a single place.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 08 Jun 2023 11:08:19 +0200
parents f952be90b051
children 12f13b13f414
comparison
equal deleted inserted replaced
50660:bf16ef96defe 50661:978ffa09910b
512 512
513 if self.postfix is not None: 513 if self.postfix is not None:
514 entry_point = b'%s.i.%s' % (self.radix, self.postfix) 514 entry_point = b'%s.i.%s' % (self.radix, self.postfix)
515 elif self._trypending and self.opener.exists(b'%s.i.a' % self.radix): 515 elif self._trypending and self.opener.exists(b'%s.i.a' % self.radix):
516 entry_point = b'%s.i.a' % self.radix 516 entry_point = b'%s.i.a' % self.radix
517 elif self._try_split and self.opener.exists(b'%s.i.s' % self.radix): 517 elif self._try_split and self.opener.exists(self._split_index_file):
518 entry_point = b'%s.i.s' % self.radix 518 entry_point = self._split_index_file
519 else: 519 else:
520 entry_point = b'%s.i' % self.radix 520 entry_point = b'%s.i' % self.radix
521 521
522 if docket is not None: 522 if docket is not None:
523 self._docket = docket 523 self._docket = docket
2018 except error.RevlogError: 2018 except error.RevlogError:
2019 if self._censorable and storageutil.iscensoredtext(text): 2019 if self._censorable and storageutil.iscensoredtext(text):
2020 raise error.CensoredNodeError(self.display_id, node, text) 2020 raise error.CensoredNodeError(self.display_id, node, text)
2021 raise 2021 raise
2022 2022
2023 @property
2024 def _split_index_file(self):
2025 """the path where to expect the index of an ongoing splitting operation
2026
2027 The file will only exist if a splitting operation is in progress, but
2028 it is always expected at the same location."""
2029 return self.radix + b'.i.s'
2030
2023 def _enforceinlinesize(self, tr, side_write=True): 2031 def _enforceinlinesize(self, tr, side_write=True):
2024 """Check if the revlog is too big for inline and convert if so. 2032 """Check if the revlog is too big for inline and convert if so.
2025 2033
2026 This should be called after revisions are added to the revlog. If the 2034 This should be called after revisions are added to the revlog. If the
2027 revlog has grown too large to be an inline revlog, it will convert it 2035 revlog has grown too large to be an inline revlog, it will convert it
2054 # No need to deal with sidedata writing handle as it is only 2062 # No need to deal with sidedata writing handle as it is only
2055 # relevant with revlog-v2 which is never inline, not reaching 2063 # relevant with revlog-v2 which is never inline, not reaching
2056 # this code 2064 # this code
2057 if side_write: 2065 if side_write:
2058 old_index_file_path = self._indexfile 2066 old_index_file_path = self._indexfile
2059 new_index_file_path = self._indexfile + b'.s' 2067 new_index_file_path = self._split_index_file
2060 opener = self.opener 2068 opener = self.opener
2061 weak_self = weakref.ref(self) 2069 weak_self = weakref.ref(self)
2062 2070
2063 fncache = getattr(opener, 'fncache', None) 2071 fncache = getattr(opener, 'fncache', None)
2064 if fncache is not None: 2072 if fncache is not None: