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 (