mercurial/revlog.py
changeset 39087 f90b333e79cb
parent 39086 64ddad2f26bb
child 39143 65d5de1169dd
--- a/mercurial/revlog.py	Tue Aug 14 13:47:07 2018 -0700
+++ b/mercurial/revlog.py	Fri Jul 27 12:08:10 2018 +0200
@@ -750,7 +750,11 @@
         deltaparent = self.revlog.deltaparent
 
         deltainfo = None
+        deltas_limit = revinfo.textlen * LIMIT_DELTA2TEXT
         for candidaterevs in self._getcandidaterevs(p1, p2, cachedelta):
+            # filter out delta base that will never produce good delta
+            candidaterevs = [r for r in candidaterevs
+                             if self.revlog.length(r) <= deltas_limit]
             nominateddeltas = []
             for candidaterev in candidaterevs:
                 # skip over empty delta (no need to include them in a chain)