Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/utils/storageutil.py @ 49606:fa955e3f6aee stable
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 | d44e3c45f0e4 |
children | 0bda07f34c01 |
comparison
equal
deleted
inserted
replaced
49605:e45590649888 | 49606:fa955e3f6aee |
---|---|
389 prevrev = store.parentrevs(revs[0])[0] | 389 prevrev = store.parentrevs(revs[0])[0] |
390 | 390 |
391 # Set of revs available to delta against. | 391 # Set of revs available to delta against. |
392 available = set() | 392 available = set() |
393 | 393 |
394 def is_usable_base(rev): | |
395 return rev != nullrev and rev in available | |
396 | |
394 for rev in revs: | 397 for rev in revs: |
395 if rev == nullrev: | 398 if rev == nullrev: |
396 continue | 399 continue |
397 | 400 |
398 node = fnode(rev) | 401 node = fnode(rev) |
418 # amounts to effectively copying data from storage and is | 421 # amounts to effectively copying data from storage and is |
419 # therefore the fastest. | 422 # therefore the fastest. |
420 elif deltaparentrev != nullrev: | 423 elif deltaparentrev != nullrev: |
421 # Base revision was already emitted in this group. We can | 424 # Base revision was already emitted in this group. We can |
422 # always safely use the delta. | 425 # always safely use the delta. |
423 if deltaparentrev in available: | 426 if is_usable_base(deltaparentrev): |
424 baserev = deltaparentrev | 427 baserev = deltaparentrev |
425 | 428 |
426 # Base revision is a parent that hasn't been emitted already. | 429 # Base revision is a parent that hasn't been emitted already. |
427 # Use it if we can assume the receiver has the parent revision. | 430 # Use it if we can assume the receiver has the parent revision. |
428 elif assumehaveparentrevisions and deltaparentrev in (p1rev, p2rev): | 431 elif assumehaveparentrevisions and deltaparentrev in (p1rev, p2rev): |