Mercurial > public > mercurial-scm > hg-stable
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. |