Mercurial > hg
changeset 49669:f064b03d061a
emitrevision: simplify the fallback to computed delta
Not using the stored delta, or having a full snapshot on disk behave the same
ways, so lets use the same code path for that, this is simpler, and it update
will be simpler.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 28 Nov 2022 16:27:23 +0100 |
parents | 383c79f8e5a7 |
children | 2fd8750f3722 |
files | mercurial/utils/storageutil.py |
diffstat | 1 files changed, 13 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/utils/storageutil.py Mon Nov 28 15:59:52 2022 +0100 +++ b/mercurial/utils/storageutil.py Mon Nov 28 16:27:23 2022 +0100 @@ -455,40 +455,28 @@ # There is a delta in storage. We try to use that because it # amounts to effectively copying data from storage and is # therefore the fastest. - elif deltaparentrev != nullrev: - # If the stored delta works, let us use it ! - if is_usable_base(deltaparentrev): - if debug_info is not None: - debug_delta_source = "storage" - baserev = deltaparentrev - # No guarantee the receiver has the delta parent. Send delta - # against last revision (if possible), which in the common case - # should be similar enough to this revision that the delta is - # reasonable. + elif is_usable_base(deltaparentrev): + if debug_info is not None: + debug_delta_source = "storage" + baserev = deltaparentrev + else: + # No guarantee the receiver has the delta parent, or Storage has a + # fulltext revision. + # + # Send delta against last revision (if possible), which in the + # common case should be similar enough to this revision that the + # delta is reasonable. + if deltaparentrev != nullrev and debug_info is not None: + debug_info['denied-base-not-available'] += 1 elif prevrev is not None: if debug_info is not None: - debug_info['denied-base-not-available'] += 1 debug_delta_source = "prev" baserev = prevrev else: if debug_info is not None: - debug_info['denied-base-not-available'] += 1 debug_delta_source = "full" baserev = nullrev - # Storage has a fulltext revision. - - # Let's use the previous revision, which is as good a guess as any. - # There is definitely room to improve this logic. - elif prevrev is not None: - if debug_info is not None: - debug_delta_source = "prev" - baserev = prevrev - else: - if debug_info is not None: - debug_delta_source = "full" - baserev = nullrev - # But we can't actually use our chosen delta base for whatever # reason. Reset to fulltext. if (