contrib/convert-repo
author Brodie Rao <brodie@sf.io>
Fri, 11 May 2012 15:45:37 +0200
branchstable
changeset 16631 369741ef7253
parent 6365 1d3eb332f3cb
permissions -rwxr-xr-x
pager: preserve Hg's exit code (and fix Windows support) (issue3225) This changes how the pager extension invokes the pager. Prior to this change, the extension would fork Hg and exec the pager in the parent process. This loses Hg exit code, and it doesn't work on Windows. Now the pager is invoked using the subprocess library, and an atexit handler is registered that makes Hg wait for the pager to exit before it exits itself. Note that if you exit the pager before Hg is done running, you'll get an exit code of 255, which is caused by Python blowing up due to a broken pipe. If you set pager.quiet=True, you'll get the OS-level return code of 141.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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)