hgext3rd/pullbundle.py
changeset 4136 be3a94d3105f
parent 4135 47f1d7b4305d
child 4138 cfdc6f55599b
--- a/hgext3rd/pullbundle.py	Mon Sep 24 00:51:39 2018 +0200
+++ b/hgext3rd/pullbundle.py	Mon Sep 24 01:16:00 2018 +0200
@@ -190,6 +190,8 @@
                 head = max(localmissing)
 
         allslices.extend(localslices)
+    # unknown subrange might had to be computed
+    repo.stablerange.save(repo)
     return [(rangeid, outgoingfromnodes(repo, nodes))
             for rangeid, nodes in allslices]
 
@@ -250,6 +252,9 @@
         prerange = (headrev, precut)
         size = stablerange.rangelength(repo, prerange)
         sub = stablerange.subranges(repo, prerange)[:-1]
+        # This power of two check is too simplistic and misbehave when too many
+        # merge are involved. because de merge, there can be "canonical" range
+        # with various size.
         while not poweroftwo(tailsize):
             for prerange in reversed(sub):
                 if tailsize <= 0: