cloning repo with subrepos broken when using a locale
Created originally on Bitbucket by fab31 (Fabien Devaux)
Default output on clone:
importing git objects into hg
updating to branch default
cloning subrepo backend/protocol/source/wyclub_release from git@XXXXX.server.com:polka/wyclub_release.git
Clonage dans '/tmp/ploum/backend/protocol/source/wyclub_release'...
remote: Counting objects: 2556, done.
remote: Compressing objects: 100% (2097/2097), done.
remote: Total 2556 (delta 1190), reused 670 (delta 206)
Réception d'objets: 100% (2556/2556), 441.28 KiB | 0 bytes/s, fait.
Résolution des deltas: 100% (1190/1190), fait.
Vérification de la connectivité... fait.
** Unknown exception encountered with possibly-broken third-party extension hggit
** which supports versions 3.1 of Mercurial.
** Please disable hggit and try your action again.
** If that fixes the bug please report it to https://bitbucket.org/durin42/hg-git/issues
** Python 2.7.8 (default, Sep 24 2014, 18:26:21) [GCC 4.9.1 20140903 (prerelease)]
** Mercurial version 3.2.1, système de gestion de sources distribué
** Extensions chargées : relink, progress, pager, hgk, rebase, strip, mq, churn, hggit, record, purge, convert, bugzilla, graphlog, transplant, color, gpg, fetch, schemes
Traceback (most recent call last):
File "/home/fab/pyenv/doc/bin/hg", line 43, in <module>
mercurial.dispatch.run()
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/dispatch.py", line 28, in run
sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/dispatch.py", line 71, in dispatch
ret = _runcatch(req)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/dispatch.py", line 140, in _runcatch
return _dispatch(req)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/dispatch.py", line 850, in _dispatch
cmdpats, cmdoptions)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/dispatch.py", line 611, in runcommand
ret = _runcommand(ui, options, cmd, d)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/extensions.py", line 196, in wrap
return wrapper(origfn, *args, **kwargs)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/hgext/color.py", line 485, in colorcmd
return orig(ui_, opts, cmd, cmdfunc)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/extensions.py", line 196, in wrap
return wrapper(origfn, *args, **kwargs)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/hgext/pager.py", line 158, in pagecmd
return orig(ui, options, cmd, cmdfunc)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/dispatch.py", line 941, in _runcommand
return checkargs()
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/dispatch.py", line 912, in checkargs
return cmdfunc()
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/dispatch.py", line 847, in <lambda>
d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/util.py", line 677, in check
return func(*args, **kwargs)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/commands.py", line 1371, in clone
branch=opts.get('branch'))
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/hg.py", line 473, in clone
_update(destrepo, uprev)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/hg.py", line 499, in update
stats = updaterepo(repo, node, False)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/hg.py", line 495, in updaterepo
labels=['working copy', 'destination'])
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/merge.py", line 1117, in update
stats = applyupdates(repo, actions, wc, p2, overwrite, labels=labels)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/merge.py", line 658, in applyupdates
subrepo.submerge(repo, wctx, mctx, wctx, overwrite)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/subrepo.py", line 249, in submerge
mctx.sub(s).get(r)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/subrepo.py", line 55, in decoratedmethod
res = func(self, *args, **kargs)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/subrepo.py", line 1345, in get
self._fetch(source, revision)
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/subrepo.py", line 1315, in _fetch
(self._relpath, self._gitremote('origin')))
File "/home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/subrepo.py", line 1242, in _gitremote
i = line.index('URL: ') + len('URL: ')
ValueError: substring not found
Fixed with this patch:
#!diff
--- /home/fab/pyenv/doc/lib/python2.7/site-packages/mercurial/subrepo.py 2014-12-02 13:12:12.827577163 +0100
+++ /tmp/subrepo.py 2014-12-02 13:11:52.257576804 +0100
@@ -1203,6 +1203,9 @@
errpipe = None
if self._ui.quiet:
errpipe = open(os.devnull, 'w')
+ if not env:
+ env = {}
+ env['LC_ALL'] = 'C'
p = subprocess.Popen([self._gitexecutable] + commands, bufsize=-1,
cwd=cwd, env=env, close_fds=util.closefds,
stdout=subprocess.PIPE, stderr=errpipe)