mercurial/pure/parsers.py
changeset 47243 3b04cf976c67
parent 47235 6b1eae313b2f
child 47244 78230d036e5d
equal deleted inserted replaced
47242:4abd474a10af 47243:3b04cf976c67
   277 
   277 
   278 class Index2Mixin(object):
   278 class Index2Mixin(object):
   279     index_format = revlog_constants.INDEX_ENTRY_V2
   279     index_format = revlog_constants.INDEX_ENTRY_V2
   280 
   280 
   281     def replace_sidedata_info(
   281     def replace_sidedata_info(
   282         self, i, sidedata_offset, sidedata_length, offset_flags
   282         self, rev, sidedata_offset, sidedata_length, offset_flags
   283     ):
   283     ):
   284         """
   284         """
   285         Replace an existing index entry's sidedata offset and length with new
   285         Replace an existing index entry's sidedata offset and length with new
   286         ones.
   286         ones.
   287         This cannot be used outside of the context of sidedata rewriting,
   287         This cannot be used outside of the context of sidedata rewriting,
   288         inside the transaction that creates the revision `i`.
   288         inside the transaction that creates the revision `rev`.
   289         """
   289         """
   290         if i < 0:
   290         if rev < 0:
   291             raise KeyError
   291             raise KeyError
   292         self._check_index(i)
   292         self._check_index(rev)
   293         sidedata_format = b">Qi"
   293         sidedata_format = b">Qi"
   294         packed_size = struct.calcsize(sidedata_format)
   294         packed_size = struct.calcsize(sidedata_format)
   295         if i >= self._lgt:
   295         if rev >= self._lgt:
   296             packed = _pack(sidedata_format, sidedata_offset, sidedata_length)
   296             packed = _pack(sidedata_format, sidedata_offset, sidedata_length)
   297             old = self._extra[i - self._lgt]
   297             old = self._extra[rev - self._lgt]
   298             offset_flags = struct.pack(b">Q", offset_flags)
   298             offset_flags = struct.pack(b">Q", offset_flags)
   299             new = offset_flags + old[8:64] + packed + old[64 + packed_size :]
   299             new = offset_flags + old[8:64] + packed + old[64 + packed_size :]
   300             self._extra[i - self._lgt] = new
   300             self._extra[rev - self._lgt] = new
   301         else:
   301         else:
   302             msg = b"cannot rewrite entries outside of this transaction"
   302             msg = b"cannot rewrite entries outside of this transaction"
   303             raise KeyError(msg)
   303             raise KeyError(msg)
   304 
   304 
   305     def _unpack_entry(self, data):
   305     def _unpack_entry(self, data):