mercurial/revlogutils/deltas.py
changeset 42467 c1c1872d25d1
parent 42466 465f2d0df9ae
child 42468 9b5fbe5ead89
--- a/mercurial/revlogutils/deltas.py	Mon Jan 21 22:37:30 2019 +0100
+++ b/mercurial/revlogutils/deltas.py	Mon Jan 21 22:46:18 2019 +0100
@@ -960,6 +960,12 @@
                 delta = revinfo.cachedelta[1]
         if delta is None:
             delta = self._builddeltadiff(base, revinfo, fh)
+        # snapshotdept need to be neither None nor 0 level snapshot
+        if revlog.upperboundcomp is not None and snapshotdepth:
+            lowestrealisticdeltalen = len(delta) // revlog.upperboundcomp
+            snapshotlimit = revinfo.textlen >> snapshotdepth
+            if snapshotlimit < lowestrealisticdeltalen:
+                return None
         header, data = revlog.compress(delta)
         deltalen = len(header) + len(data)
         offset = revlog.end(len(revlog) - 1)