# HG changeset patch
# User Boris Feld <boris.f...@octobus.net>
# Date 1541687398 -3600
#      Thu Nov 08 15:29:58 2018 +0100
# Node ID 3bdd984df153304a956d31d2f3fbc3cd7f0e41c2
# Parent  c8eba56f115019badd26223e504ca4899210075a
# EXP-Topic sparse-perf
# Available At https://bitbucket.org/octobus/mercurial-devel/
#              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 
3bdd984df153
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)
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to