mercurial/revlog.py
changeset 47245 de63be070e02
parent 47242 4abd474a10af
child 47246 02a4463565ea
equal deleted inserted replaced
47244:78230d036e5d 47245:de63be070e02
  3238                     raise error.Abort(msg)
  3238                     raise error.Abort(msg)
  3239 
  3239 
  3240                 # Apply (potential) flags to add and to remove after running
  3240                 # Apply (potential) flags to add and to remove after running
  3241                 # the sidedata helpers
  3241                 # the sidedata helpers
  3242                 new_offset_flags = entry[0] | flags[0] & ~flags[1]
  3242                 new_offset_flags = entry[0] | flags[0] & ~flags[1]
  3243                 entry = (new_offset_flags,) + entry[1:8]
  3243                 entry_update = (
  3244                 entry += (current_offset, len(serialized_sidedata))
  3244                     current_offset,
       
  3245                     len(serialized_sidedata),
       
  3246                     new_offset_flags,
       
  3247                 )
  3245 
  3248 
  3246                 # the sidedata computation might have move the file cursors around
  3249                 # the sidedata computation might have move the file cursors around
  3247                 dfh.seek(current_offset, os.SEEK_SET)
  3250                 dfh.seek(current_offset, os.SEEK_SET)
  3248                 dfh.write(serialized_sidedata)
  3251                 dfh.write(serialized_sidedata)
  3249                 new_entries.append(entry)
  3252                 new_entries.append(entry_update)
  3250                 current_offset += len(serialized_sidedata)
  3253                 current_offset += len(serialized_sidedata)
  3251                 if self._docket is not None:
  3254                 if self._docket is not None:
  3252                     self._docket.data_end = dfh.tell()
  3255                     self._docket.data_end = dfh.tell()
  3253 
  3256 
  3254             # rewrite the new index entries
  3257             # rewrite the new index entries
  3255             ifh.seek(startrev * self.index.entry_size)
  3258             ifh.seek(startrev * self.index.entry_size)
  3256             for i, e in enumerate(new_entries):
  3259             for i, e in enumerate(new_entries):
  3257                 rev = startrev + i
  3260                 rev = startrev + i
  3258                 self.index.replace_sidedata_info(rev, e[8], e[9], e[0])
  3261                 self.index.replace_sidedata_info(rev, *e)
  3259                 packed = self.index.entry_binary(rev)
  3262                 packed = self.index.entry_binary(rev)
  3260                 if rev == 0 and self._docket is None:
  3263                 if rev == 0 and self._docket is None:
  3261                     header = self._format_flags | self._format_version
  3264                     header = self._format_flags | self._format_version
  3262                     header = self.index.pack_header(header)
  3265                     header = self.index.pack_header(header)
  3263                     packed = header + packed
  3266                     packed = header + packed