mercurial/utils/storageutil.py
changeset 47085 3aab2330b7d3
parent 47078 223b47235d1c
child 47086 8bd769b5c941
equal deleted inserted replaced
47084:27f1191b1305 47085:3aab2330b7d3
   497 
   497 
   498         serialized_sidedata = None
   498         serialized_sidedata = None
   499         sidedata_flags = (0, 0)
   499         sidedata_flags = (0, 0)
   500         if sidedata_helpers:
   500         if sidedata_helpers:
   501             old_sidedata = store.sidedata(rev)
   501             old_sidedata = store.sidedata(rev)
   502             sidedata, sidedata_flags = run_sidedata_helpers(
   502             sidedata, sidedata_flags = sidedatamod.run_sidedata_helpers(
   503                 store=store,
   503                 store=store,
   504                 sidedata_helpers=sidedata_helpers,
   504                 sidedata_helpers=sidedata_helpers,
   505                 sidedata=old_sidedata,
   505                 sidedata=old_sidedata,
   506                 rev=rev,
   506                 rev=rev,
   507             )
   507             )
   530         )
   530         )
   531 
   531 
   532         prevrev = rev
   532         prevrev = rev
   533 
   533 
   534 
   534 
   535 def run_sidedata_helpers(store, sidedata_helpers, sidedata, rev):
       
   536     """Returns the sidedata for the given revision after running through
       
   537     the given helpers.
       
   538     - `store`: the revlog this applies to (changelog, manifest, or filelog
       
   539       instance)
       
   540     - `sidedata_helpers`: see `storageutil.emitrevisions`
       
   541     - `sidedata`: previous sidedata at the given rev, if any
       
   542     - `rev`: affected rev of `store`
       
   543     """
       
   544     repo, sd_computers, sd_removers = sidedata_helpers
       
   545     kind = store.revlog_kind
       
   546     flags_to_add = 0
       
   547     flags_to_remove = 0
       
   548     for _keys, sd_computer, _flags in sd_computers.get(kind, []):
       
   549         sidedata, flags = sd_computer(repo, store, rev, sidedata)
       
   550         flags_to_add |= flags[0]
       
   551         flags_to_remove |= flags[1]
       
   552     for keys, _computer, flags in sd_removers.get(kind, []):
       
   553         for key in keys:
       
   554             sidedata.pop(key, None)
       
   555         flags_to_remove |= flags
       
   556     return sidedata, (flags_to_add, flags_to_remove)
       
   557 
       
   558 
       
   559 def deltaiscensored(delta, baserev, baselenfn):
   535 def deltaiscensored(delta, baserev, baselenfn):
   560     """Determine if a delta represents censored revision data.
   536     """Determine if a delta represents censored revision data.
   561 
   537 
   562     ``baserev`` is the base revision this delta is encoded against.
   538     ``baserev`` is the base revision this delta is encoded against.
   563     ``baselenfn`` is a callable receiving a revision number that resolves the
   539     ``baselenfn`` is a callable receiving a revision number that resolves the