Comments
Patch
@@ -2653,22 +2653,13 @@
" rawsize totalsize compression heads chainlen\n")
ts = 0
heads = set()
- rindex = r.index
-
- def chainbaseandlen(rev):
- clen = 0
- base = rindex[rev][3]
- while base != rev:
- clen += 1
- rev = base
- base = rindex[rev][3]
- return base, clen
for rev in xrange(numrevs):
dbase = r.deltaparent(rev)
if dbase == -1:
dbase = rev
- cbase, clen = chainbaseandlen(rev)
+ cbase = r.chainbase(rev)
+ clen = r.chainlen(rev)
p1, p2 = r.parentrevs(rev)
rs = r.rawsize(rev)
ts = ts + rs
@@ -350,6 +350,20 @@
rev = base
base = index[rev][3]
return base
+ def chainlen(self, rev):
+ index = self.index
+ generaldelta = self._generaldelta
+ iterrev = rev
+ e = index[iterrev]
+ clen = 0
+ while iterrev != e[3]:
+ clen += 1
+ if generaldelta:
+ iterrev = e[3]
+ else:
+ iterrev -= 1
+ e = index[iterrev]
+ return clen
def flags(self, rev):
return self.index[rev][0] & 0xFFFF
def rawsize(self, rev):