mercurial/pure/parsers.py
changeset 47078 223b47235d1c
parent 47037 d57386e5c80e
child 47142 4292bed8da7c
equal deleted inserted replaced
47077:119790e1c67c 47078:223b47235d1c
   266 
   266 
   267 class Index2Mixin(object):
   267 class Index2Mixin(object):
   268     index_format = revlog_constants.INDEX_ENTRY_V2
   268     index_format = revlog_constants.INDEX_ENTRY_V2
   269     null_item = (0, 0, 0, -1, -1, -1, -1, sha1nodeconstants.nullid, 0, 0)
   269     null_item = (0, 0, 0, -1, -1, -1, -1, sha1nodeconstants.nullid, 0, 0)
   270 
   270 
   271     def replace_sidedata_info(self, i, sidedata_offset, sidedata_length):
   271     def replace_sidedata_info(
       
   272         self, i, sidedata_offset, sidedata_length, offset_flags
       
   273     ):
   272         """
   274         """
   273         Replace an existing index entry's sidedata offset and length with new
   275         Replace an existing index entry's sidedata offset and length with new
   274         ones.
   276         ones.
   275         This cannot be used outside of the context of sidedata rewriting,
   277         This cannot be used outside of the context of sidedata rewriting,
   276         inside the transaction that creates the revision `i`.
   278         inside the transaction that creates the revision `i`.
   281         sidedata_format = b">Qi"
   283         sidedata_format = b">Qi"
   282         packed_size = struct.calcsize(sidedata_format)
   284         packed_size = struct.calcsize(sidedata_format)
   283         if i >= self._lgt:
   285         if i >= self._lgt:
   284             packed = _pack(sidedata_format, sidedata_offset, sidedata_length)
   286             packed = _pack(sidedata_format, sidedata_offset, sidedata_length)
   285             old = self._extra[i - self._lgt]
   287             old = self._extra[i - self._lgt]
   286             new = old[:64] + packed + old[64 + packed_size :]
   288             offset_flags = struct.pack(b">Q", offset_flags)
       
   289             new = offset_flags + old[8:64] + packed + old[64 + packed_size :]
   287             self._extra[i - self._lgt] = new
   290             self._extra[i - self._lgt] = new
   288         else:
   291         else:
   289             msg = b"cannot rewrite entries outside of this transaction"
   292             msg = b"cannot rewrite entries outside of this transaction"
   290             raise KeyError(msg)
   293             raise KeyError(msg)
   291 
   294