--- a/mercurial/debugcommands.py Sat Jun 24 21:13:48 2017 -0700
+++ b/mercurial/debugcommands.py Fri Jun 23 01:38:10 2017 +0200
@@ -1749,6 +1749,8 @@
nump1prev = 0
nump2prev = 0
chainlengths = []
+ chainbases = []
+ chainspans = []
datasize = [None, 0, 0]
fullsize = [None, 0, 0]
@@ -1774,10 +1776,16 @@
size = r.length(rev)
if delta == nullrev:
chainlengths.append(0)
+ chainbases.append(r.start(rev))
+ chainspans.append(size)
numfull += 1
addsize(size, fullsize)
else:
chainlengths.append(chainlengths[delta] + 1)
+ baseaddr = chainbases[delta]
+ revaddr = r.start(rev)
+ chainbases.append(baseaddr)
+ chainspans.append((revaddr - baseaddr) + size)
addsize(size, deltasize)
if delta == rev - 1:
numprev += 1
@@ -1823,6 +1831,7 @@
totalsize = fulltotal + deltatotal
avgchainlen = sum(chainlengths) / numrevs
maxchainlen = max(chainlengths)
+ maxchainspan = max(chainspans)
compratio = 1
if totalsize:
compratio = totalrawsize / totalsize
@@ -1879,6 +1888,7 @@
fmt = dfmtstr(max(avgchainlen, compratio))
ui.write(('avg chain length : ') + fmt % avgchainlen)
ui.write(('max chain length : ') + fmt % maxchainlen)
+ ui.write(('max chain reach : ') + fmt % maxchainspan)
ui.write(('compression ratio : ') + fmt % compratio)
if format > 0: