# HG changeset patch # User Boris Feld # Date 2018-11-08 14:29:58 # Node ID bfbfd15d65bd862d596af7154ef29f1321b4cfa1 # Parent a32ccd32982b6b9ed960184e32ed21a78490e721 sparse-revlog: fast-path before computing payload size In this fast-path case, we do not need to compute the full delta chain payload. Since it comes with a significant cost, we avoid doing so if possible. diff --git a/mercurial/revlogutils/deltas.py b/mercurial/revlogutils/deltas.py --- a/mercurial/revlogutils/deltas.py +++ b/mercurial/revlogutils/deltas.py @@ -257,13 +257,13 @@ def _slicechunktodensity(revlog, revs, t return deltachainspan = segmentspan(revlog, revs) - chainpayload = sum(length(r) for r in revs) if deltachainspan < mingapsize: yield revs return readdata = deltachainspan + chainpayload = sum(length(r) for r in revs) if deltachainspan: density = chainpayload / float(deltachainspan)