comparison mercurial/utils/storageutil.py @ 49781:191f5057ec45

emitrevision: add a small closure to check if a base is usable We will make more use of this and make it more complex too.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Mon, 28 Nov 2022 15:48:51 +0100
parents 9cac281eb9c0
children 383c79f8e5a7
comparison
equal deleted inserted replaced
49780:4bd12c0f531e 49781:191f5057ec45
394 prevrev = store.parentrevs(revs[0])[0] 394 prevrev = store.parentrevs(revs[0])[0]
395 395
396 # Set of revs available to delta against. 396 # Set of revs available to delta against.
397 available = set() 397 available = set()
398 398
399 def is_usable_base(rev):
400 return rev != nullrev and rev in available
401
399 for rev in revs: 402 for rev in revs:
400 if rev == nullrev: 403 if rev == nullrev:
401 continue 404 continue
402 405
403 debug_delta_source = None 406 debug_delta_source = None
443 # amounts to effectively copying data from storage and is 446 # amounts to effectively copying data from storage and is
444 # therefore the fastest. 447 # therefore the fastest.
445 elif deltaparentrev != nullrev: 448 elif deltaparentrev != nullrev:
446 # Base revision was already emitted in this group. We can 449 # Base revision was already emitted in this group. We can
447 # always safely use the delta. 450 # always safely use the delta.
448 if deltaparentrev in available: 451 if is_usable_base(deltaparentrev):
449 if debug_info is not None: 452 if debug_info is not None:
450 debug_delta_source = "storage" 453 debug_delta_source = "storage"
451 baserev = deltaparentrev 454 baserev = deltaparentrev
452 455
453 # Base revision is a parent that hasn't been emitted already. 456 # Base revision is a parent that hasn't been emitted already.