comparison mercurial/utils/storageutil.py @ 47099:3aab2330b7d3

sidedata: move sidedata-related utils to the dedicated module Differential Revision: https://phab.mercurial-scm.org/D10360
author Rapha?l Gom?s <rgomes@octobus.net>
date Mon, 19 Apr 2021 11:22:24 +0200
parents 223b47235d1c
children 8bd769b5c941
comparison
equal deleted inserted replaced
47098:27f1191b1305 47099: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