emitrevision: simplify the fallback to computed delta stable
authorPierre-Yves David <pierre-yves.david@octobus.net>
Mon, 28 Nov 2022 16:27:23 +0100
branchstable
changeset 49787 bb2c663c840f
parent 49786 0bda07f34c01
child 49788 31b4675ca998
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.
mercurial/utils/storageutil.py
--- 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
@@ -430,28 +430,20 @@
         # 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):
-                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 prevrev is not None:
+        elif is_usable_base(deltaparentrev):
+            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 prevrev is not None:
                 baserev = prevrev
             else:
                 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:
-            baserev = prevrev
-        else:
-            baserev = nullrev
-
         # But we can't actually use our chosen delta base for whatever
         # reason. Reset to fulltext.
         if baserev != nullrev and (candeltafn and not candeltafn(baserev, rev)):