Mercurial > hg
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 |
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) |