hgext3rd/evolve/stablerangecache.py
changeset 5313 fbe07b1cf5d4
parent 5276 8431bb224862
child 5322 498dc888ff40
equal deleted inserted replaced
5312:9035901412e6 5313:fbe07b1cf5d4
   434     """display data about the stable sort cache of a repository
   434     """display data about the stable sort cache of a repository
   435     """
   435     """
   436     unfi = repo.unfiltered()
   436     unfi = repo.unfiltered()
   437     revs = unfi.revs('all()')
   437     revs = unfi.revs('all()')
   438     nbrevs = len(revs)
   438     nbrevs = len(revs)
   439     ui.write('number of revisions:  %12d\n' % nbrevs)
   439     ui.write(b'number of revisions:  %12d\n' % nbrevs)
   440     heads = unfi.revs('heads(all())')
   440     heads = unfi.revs('heads(all())')
   441     nbheads = len(heads)
   441     nbheads = len(heads)
   442     ui.write('number of heads:      %12d\n' % nbheads)
   442     ui.write(b'number of heads:      %12d\n' % nbheads)
   443     merge = unfi.revs('merge()')
   443     merge = unfi.revs('merge()')
   444     nbmerge = len(merge)
   444     nbmerge = len(merge)
   445     ui.write('number of merge:      %12d (%3d%%)\n'
   445     ui.write(b'number of merge:      %12d (%3d%%)\n'
   446              % (nbmerge, 100 * nbmerge / nbrevs))
   446              % (nbmerge, 100 * nbmerge / nbrevs))
   447     cache = unfi.stablerange
   447     cache = unfi.stablerange
   448     allsubranges = stablerange.subrangesclosure(unfi, cache, heads)
   448     allsubranges = stablerange.subrangesclosure(unfi, cache, heads)
   449     nbsubranges = len(allsubranges) - nbrevs # we remove leafs
   449     nbsubranges = len(allsubranges) - nbrevs # we remove leafs
   450     ui.write('number of range:      %12d\n' % nbsubranges)
   450     ui.write(b'number of range:      %12d\n' % nbsubranges)
   451     import collections
   451     import collections
   452     subsizedistrib = collections.defaultdict(lambda: 0)
   452     subsizedistrib = collections.defaultdict(lambda: 0)
   453 
   453 
   454     def smallsize(r):
   454     def smallsize(r):
   455         # This is computing the size it would take to store a range for a
   455         # This is computing the size it would take to store a range for a
   474         totalsize += smallsize(sr)
   474         totalsize += smallsize(sr)
   475 
   475 
   476     for ss in sorted(subsizedistrib):
   476     for ss in sorted(subsizedistrib):
   477         ssc = subsizedistrib[ss]
   477         ssc = subsizedistrib[ss]
   478         ssp = ssc * 100 // nbsubranges
   478         ssp = ssc * 100 // nbsubranges
   479         ui.write('  with %3d subranges: %12d (%3d%%)\n' % (ss, ssc, ssp))
   479         ui.write(b'  with %3d subranges: %12d (%3d%%)\n' % (ss, ssc, ssp))
   480 
   480 
   481     depth = repo.depthcache.get
   481     depth = repo.depthcache.get
   482     stdslice = 0
   482     stdslice = 0
   483     oddslice = 0
   483     oddslice = 0
   484 
   484 
   489         if (skip & k) == skip:
   489         if (skip & k) == skip:
   490             stdslice += 1
   490             stdslice += 1
   491         else:
   491         else:
   492             oddslice += 1
   492             oddslice += 1
   493 
   493 
   494     ui.write('standard slice point cut: %12d (%3d%%)\n'
   494     ui.write(b'standard slice point cut: %12d (%3d%%)\n'
   495              % (stdslice, stdslice * 100 // nbsubranges))
   495              % (stdslice, stdslice * 100 // nbsubranges))
   496     ui.write('other    slice point cut: %12d (%3d%%)\n'
   496     ui.write(b'other    slice point cut: %12d (%3d%%)\n'
   497              % (oddslice, oddslice * 100 // nbsubranges))
   497              % (oddslice, oddslice * 100 // nbsubranges))
   498     ui.write('est. naive compact store: %12d bytes\n' % totalsize)
   498     ui.write(b'est. naive compact store: %12d bytes\n' % totalsize)
   499 
   499 
   500 @eh.reposetup
   500 @eh.reposetup
   501 def setupcache(ui, repo):
   501 def setupcache(ui, repo):
   502 
   502 
   503     class stablerangerepo(repo.__class__):
   503     class stablerangerepo(repo.__class__):