~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/weave.py

  • Committer: Martin Pool
  • Date: 2005-07-18 18:53:46 UTC
  • Revision ID: mbp@sourcefrog.net-20050718185346-6226a1be01b942e1
- new 'weave stats' command

Show diffs side-by-side

added added

removed removed

Lines of Context:
682
682
 
683
683
 
684
684
 
 
685
def weave_stats(weave_file):
 
686
    from bzrlib.progress import ProgressBar
 
687
    from bzrlib.weavefile import read_weave
 
688
 
 
689
    pb = ProgressBar()
 
690
 
 
691
    wf = file(weave_file, 'rb')
 
692
    w = read_weave(wf)
 
693
    # FIXME: doesn't work on pipes
 
694
    weave_size = wf.tell()
 
695
 
 
696
    total = 0
 
697
    vers = len(w)
 
698
    for i in range(vers):
 
699
        pb.update('checking sizes', i, vers)
 
700
        for line in w.get_iter(i):
 
701
            total += len(line)
 
702
 
 
703
    pb.clear()
 
704
 
 
705
    print 'versions          %9d' % vers
 
706
    print 'weave file        %9d bytes' % weave_size
 
707
    print 'total contents    %9d bytes' % total
 
708
    print 'compression ratio %9.2fx' % (float(total) / float(weave_size))
 
709
 
 
710
 
 
711
 
685
712
def usage():
686
713
    print """bzr weave tool
687
714
 
784
811
                
785
812
    elif cmd == 'info':
786
813
        weave_info(readit())
 
814
 
 
815
    elif cmd == 'stats':
 
816
        weave_stats(argv[2])
787
817
        
788
818
    elif cmd == 'check':
789
819
        w = readit()