diff -r b3b4bee161cf -r a98e926b2f5b mercurial/revlog.py --- a/mercurial/revlog.py Mon Jul 23 16:21:58 2018 +0200 +++ b/mercurial/revlog.py Fri Jul 20 13:20:01 2018 +0200 @@ -2514,6 +2514,11 @@ else: deltachain = [] + # search for the first non-snapshot revision + for idx, r in enumerate(deltachain): + if not self.issnapshot(r): + break + deltachain = deltachain[idx:] chunks = _slicechunk(self, deltachain, deltainfo) all_span = [_segmentspan(self, revs, deltainfo) for revs in chunks] distance = max(all_span)