Comments
Patch
@@ -2537,19 +2537,17 @@ def debugdeltachain(ui, repo, file_=None
extraratio extradist divided by chainsize; another representation of
how much unrelated data is needed to load this delta chain
"""
r = cmdutil.openrevlog(repo, 'debugdeltachain', file_, opts)
index = r.index
generaldelta = r.version & revlog.REVLOGGENERALDELTA
def revinfo(rev):
- iterrev = rev
- e = index[iterrev]
- chain = []
+ e = index[rev]
compsize = e[1]
uncompsize = e[2]
chainsize = 0
if generaldelta:
if e[3] == e[5]:
deltatype = 'p1'
elif e[3] == e[6]:
@@ -2561,29 +2559,21 @@ def debugdeltachain(ui, repo, file_=None
else:
deltatype = 'other'
else:
if e[3] == rev:
deltatype = 'base'
else:
deltatype = 'prev'
- while iterrev != e[3]:
- chain.append(iterrev)
+ chain = r._deltachain(rev)[0]
+ for iterrev in chain:
+ e = index[iterrev]
chainsize += e[1]
- if generaldelta:
- iterrev = e[3]
- else:
- iterrev -= 1
- e = index[iterrev]
- else:
- chainsize += e[1]
- chain.append(iterrev)
-
- chain.reverse()
+
return compsize, uncompsize, deltatype, chain, chainsize
fm = ui.formatter('debugdeltachain', opts)
fm.plain(' rev chain# chainlen prev delta '
'size rawsize chainsize ratio lindist extradist '
'extraratio\n')