mercurial/revlogutils/rewrite.py
changeset 51017 509f0f7fc89e
parent 51016 66c139d33cfe
child 51026 498afb627f78
equal deleted inserted replaced
51016:66c139d33cfe 51017:509f0f7fc89e
   232     Return a mapping: {rev → (new_base, data_start, data_end, compression_mode)}
   232     Return a mapping: {rev → (new_base, data_start, data_end, compression_mode)}
   233     """
   233     """
   234     dc = deltas.deltacomputer(revlog)
   234     dc = deltas.deltacomputer(revlog)
   235     rewritten_entries = {}
   235     rewritten_entries = {}
   236     first_excl_rev = min(excluded_revs)
   236     first_excl_rev = min(excluded_revs)
   237     with revlog.reading(), revlog._segmentfile._open_read() as dfh:
   237     with revlog.reading():
   238         for rev in range(first_excl_rev, len(old_index)):
   238         for rev in range(first_excl_rev, len(old_index)):
   239             if rev in excluded_revs:
   239             if rev in excluded_revs:
   240                 # this revision will be preserved as is, so we don't need to
   240                 # this revision will be preserved as is, so we don't need to
   241                 # consider recomputing a delta.
   241                 # consider recomputing a delta.
   242                 continue
   242                 continue
   259                     textlen=len(text),
   259                     textlen=len(text),
   260                     cachedelta=None,
   260                     cachedelta=None,
   261                     flags=entry[ENTRY_DATA_OFFSET] & 0xFFFF,
   261                     flags=entry[ENTRY_DATA_OFFSET] & 0xFFFF,
   262                 )
   262                 )
   263                 d = dc.finddeltainfo(
   263                 d = dc.finddeltainfo(
   264                     info, dfh, excluded_bases=excluded_revs, target_rev=rev
   264                     info, excluded_bases=excluded_revs, target_rev=rev
   265                 )
   265                 )
   266                 default_comp = revlog._docket.default_compression_header
   266                 default_comp = revlog._docket.default_compression_header
   267                 comp_mode, d = deltas.delta_compression(default_comp, d)
   267                 comp_mode, d = deltas.delta_compression(default_comp, d)
   268                 # using `tell` is a bit lazy, but we are not here for speed
   268                 # using `tell` is a bit lazy, but we are not here for speed
   269                 start = tmp_storage.tell()
   269                 start = tmp_storage.tell()
   772                 [None],
   772                 [None],
   773                 textlen,
   773                 textlen,
   774                 (base_rev, delta),
   774                 (base_rev, delta),
   775                 flags,
   775                 flags,
   776             )
   776             )
   777             # cached by the global "writing" context
   777             return deltacomputer.buildtext(revinfo)
   778             assert revlog._writinghandles is not None
       
   779             if revlog._inline:
       
   780                 fh = revlog._writinghandles[0]
       
   781             else:
       
   782                 fh = revlog._writinghandles[1]
       
   783             return deltacomputer.buildtext(revinfo, fh)
       
   784 
   778 
   785         is_affected = _is_revision_affected_fast_inner(
   779         is_affected = _is_revision_affected_fast_inner(
   786             is_censored,
   780             is_censored,
   787             delta_base,
   781             delta_base,
   788             lambda: delta,
   782             lambda: delta,