dirs: use mutable strings internally
perfdirs results for a working dir with 170,000 files:
Python 638 msec
C 244
C+int 192
C+int+str 168
In the large repo above, the nearly 0.5 second time improvement is
visible in commands like "hg add" and "hg update".
hg add
Python 1100 msec
C+int+str 600
hg update (with nothing to do)
Python 2800 msec
C+int+str 2240
#!/usr/bin/env python
#
# Wrapper script around the convert.py hgext extension
# for foreign SCM conversion to mercurial format.
#
import sys
from mercurial import ui, fancyopts
from hgext import convert
# Options extracted from the cmdtable
func, options, help = convert.cmdtable['convert']
# An ui instance
u = ui.ui()
opts = {}
args = []
try:
args = list(fancyopts.fancyopts(sys.argv[1:], options, opts))
args += [None]*(3 - len(args))
src, dest, revmapfile = args
except (fancyopts.getopt.GetoptError, ValueError), inst:
u.warn('Usage:\n%s\n' % help)
sys.exit(-1)
convert.convert(u, src, dest, revmapfile, **opts)