--- 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)