mercurial/revlogutils/debug.py
changeset 49659 7c0a383849a8
parent 49266 da3e37ecacde
child 49660 bd3b6f363fb9
equal deleted inserted replaced
49658:523cacdfd324 49659:7c0a383849a8
   214             display = b"%%%ds" % size
   214             display = b"%%%ds" % size
   215             fm.write(column.name, display, value)
   215             fm.write(column.name, display, value)
   216         fm.plain(b'\n')
   216         fm.plain(b'\n')
   217 
   217 
   218     fm.end()
   218     fm.end()
       
   219 
       
   220 
       
   221 def dump(ui, revlog):
       
   222     """perform the work for `hg debugrevlog --dump"""
       
   223     # XXX seems redundant with debug index ?
       
   224     r = revlog
       
   225     numrevs = len(r)
       
   226     ui.write(
       
   227         (
       
   228             b"# rev p1rev p2rev start   end deltastart base   p1   p2"
       
   229             b" rawsize totalsize compression heads chainlen\n"
       
   230         )
       
   231     )
       
   232     ts = 0
       
   233     heads = set()
       
   234 
       
   235     for rev in range(numrevs):
       
   236         dbase = r.deltaparent(rev)
       
   237         if dbase == -1:
       
   238             dbase = rev
       
   239         cbase = r.chainbase(rev)
       
   240         clen = r.chainlen(rev)
       
   241         p1, p2 = r.parentrevs(rev)
       
   242         rs = r.rawsize(rev)
       
   243         ts = ts + rs
       
   244         heads -= set(r.parentrevs(rev))
       
   245         heads.add(rev)
       
   246         try:
       
   247             compression = ts / r.end(rev)
       
   248         except ZeroDivisionError:
       
   249             compression = 0
       
   250         ui.write(
       
   251             b"%5d %5d %5d %5d %5d %10d %4d %4d %4d %7d %9d "
       
   252             b"%11d %5d %8d\n"
       
   253             % (
       
   254                 rev,
       
   255                 p1,
       
   256                 p2,
       
   257                 r.start(rev),
       
   258                 r.end(rev),
       
   259                 r.start(dbase),
       
   260                 r.start(cbase),
       
   261                 r.start(p1),
       
   262                 r.start(p2),
       
   263                 rs,
       
   264                 ts,
       
   265                 compression,
       
   266                 len(heads),
       
   267                 clen,
       
   268             )
       
   269         )