Mercurial > hg
annotate contrib/convert-repo @ 11555:d8d0fc3988ca stable
color/progress: subclass ui instead of using wrapfunction (issue2096)
This resolves the issue of hg cmd --mq not being colorized. This was due
to color wrapping only the instance of ui passed to dispatch._runcommand(),
which isn't the same ui object that mq.mqcommand() receives. After dispatch
calls extensions.loadall(), it makes sure any changes to ui.__class__ in
uisetup are propagated.
progress is updated to wrap ui in the same manner because wrapfunction
doesn't play well when ui.__class__ has been replaced by another extension
(orig will point to the old class method instead of color's).
author | Brodie Rao <brodie@bitheap.org> |
---|---|
date | Thu, 01 Jul 2010 19:23:26 -0500 |
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) |