diff -r 2312e70cf78b -r 03eefca3ed33 mercurial/debugcommands.py --- 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: