Comments
Patch
@@ -1737,6 +1737,8 @@ def debugrevlog(ui, repo, file_=None, **
nump1prev = 0
nump2prev = 0
chainlengths = []
+ chainbases = []
+ chainspans = []
datasize = [None, 0, 0]
fullsize = [None, 0, 0]
@@ -1762,10 +1764,16 @@ def debugrevlog(ui, repo, file_=None, **
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
@@ -1811,6 +1819,7 @@ def debugrevlog(ui, repo, file_=None, **
totalsize = fulltotal + deltatotal
avgchainlen = sum(chainlengths) / numrevs
maxchainlen = max(chainlengths)
+ maxchainspan = max(chainspans)
compratio = 1
if totalsize:
compratio = totalrawsize / totalsize
@@ -1867,6 +1876,7 @@ def debugrevlog(ui, repo, file_=None, **
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:
@@ -29,6 +29,7 @@
avg chain length : 0
max chain length : 0
+ max chain reach : 44
compression ratio : 0
uncompressed data size (min/max/avg) : 43 / 43 / 43