annotate contrib/convert-repo @ 17952:54cedee86e51 stable

commit: increase perf by avoiding checks against entire repo subsets When commiting to a repo with lots of history (>400000 changesets) checking the results of revset.py:descendants against the subset takes some time. Since the subset equals the entire changelog, the check isn't necessary. Avoiding it in that case saves 0.1 seconds off of a 1.78 second commit. A 6% gain. We use the length of the subset to determine if it is the entire repo. There is precedence for this in revset.py:stringset.
author Durham Goode <durham@fb.com>
date Fri, 16 Nov 2012 15:39:12 -0800
parents 1d3eb332f3cb
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4514
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
1 #!/usr/bin/env python
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
2 #
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
3 # Wrapper script around the convert.py hgext extension
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
4 # for foreign SCM conversion to mercurial format.
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
5 #
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
6
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
7 import sys
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
8 from mercurial import ui, fancyopts
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
9 from hgext import convert
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
10
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
11 # Options extracted from the cmdtable
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
12 func, options, help = convert.cmdtable['convert']
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
13
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
14 # An ui instance
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
15 u = ui.ui()
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
16
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
17 opts = {}
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
18 args = []
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
19 try:
6365
1d3eb332f3cb convertrepo: make it work with refactored convert extension
Patrick Mezard <pmezard@gmail.com>
parents: 4514
diff changeset
20 args = list(fancyopts.fancyopts(sys.argv[1:], options, opts))
1d3eb332f3cb convertrepo: make it work with refactored convert extension
Patrick Mezard <pmezard@gmail.com>
parents: 4514
diff changeset
21 args += [None]*(3 - len(args))
1d3eb332f3cb convertrepo: make it work with refactored convert extension
Patrick Mezard <pmezard@gmail.com>
parents: 4514
diff changeset
22 src, dest, revmapfile = args
1d3eb332f3cb convertrepo: make it work with refactored convert extension
Patrick Mezard <pmezard@gmail.com>
parents: 4514
diff changeset
23 except (fancyopts.getopt.GetoptError, ValueError), inst:
1d3eb332f3cb convertrepo: make it work with refactored convert extension
Patrick Mezard <pmezard@gmail.com>
parents: 4514
diff changeset
24 u.warn('Usage:\n%s\n' % help)
4514
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
25 sys.exit(-1)
ec889780f28b Add a wrapper script for convert extension
Edouard Gomez <ed.gomez@free.fr>
parents:
diff changeset
26
6365
1d3eb332f3cb convertrepo: make it work with refactored convert extension
Patrick Mezard <pmezard@gmail.com>
parents: 4514
diff changeset
27 convert.convert(u, src, dest, revmapfile, **opts)