Cannot clone clang repo

Issue #475 new
Former user created an issue

When trying to clone the clang svn repo using

$ hg version --svn Mercurial Distributed SCM (version 4.6.2) (see for more information)

Copyright (C) 2005-2018 Matt Mackall and others This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

hgsubversion: 51e105c7f0c6 Subversion: 1.9.7 bindings: Subvertpy 0.10.1

like this:

$ hg clone svn+ dist

it fails as follows:

[...] [r180901] ayartsev: [analyzer] Added 'executable' property to c++analyzer.
Unknown exception encountered with possibly-broken third-party extension hgsubversion which supports versions 4.5 of Mercurial. Please disable hgsubversion and try your action again. If that fixes the bug please report it to the extension author. Python 2.7 (r27:82500, Nov 26 2010, 16:16:53) [C] Mercurial Distributed SCM (version 4.6.2) Extensions loaded: extdiff, convert, fetch, strip, mq, hgk, hgsubversion, rebase, hggit Traceback (most recent call last): File "/vol/mercurial/bin/hg", line 41, in <module> File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 90, in run status = (dispatch(req) or 0) File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 210, in dispatch ret = _runcatch(req) File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 351, in _runcatch return _callcatch(ui, _runcatchfunc) File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 359, in _callcatch return scmutil.callcatch(ui, func) File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 160, in callcatch return func() File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 341, in _runcatchfunc return _dispatch(req) File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 971, in _dispatch cmdpats, cmdoptions) File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 727, in runcommand ret = _runcommand(ui, options, cmd, d) File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 979, in _runcommand return cmdfunc() File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 968, in <lambda> d = lambda: util.checksignature(func)(ui, *args, strcmdopt) File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 1553, in check return func(args, kwargs) File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 1553, in check return func(*args, kwargs) File "/vol/src/mercurial/hgsubversion/hgsubversion/", line 684, in clone orig(ui, source, dest, opts) File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 1553, in check return func(*args, kwargs) File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 1467, in clone shareopts=opts.get('shareopts')) File "/vol/src/mercurial/hgsubversion/hgsubversion/", line 671, in hgclonewrapper data['srcrepo'], data['dstrepo'] = orig(ui, args, opts) File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 709, in clone streamclonerequested=stream) File "/vol/src/mercurial/hgsubversion/hgsubversion/", line 564, in exchangepull pullop.cgresult = pull(repo, remote, heads, force) File "/vol/src/mercurial/hgsubversion/hgsubversion/", line 506, in pull firstrun) File "/vol/src/mercurial/hgsubversion/hgsubversion/", line 57, in convert_rev return _convert_rev(ui, meta, svn, r, tbdelta, firstrun) File "/vol/src/mercurial/hgsubversion/hgsubversion/", line 196, in _convert_rev new_hash = meta.repo.svn_commitctx(current_ctx) File "/vol/src/mercurial/hgsubversion/hgsubversion/", line 95, in svn_commitctx hash = self.commitctx(ctxctx(ctx)) File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 147, in wrapper return orig(repo.unfiltered(), *args, kwargs) File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 2056, in commitctx m.setflag(f, fctx.flags()) File "/vol/mercurial/lib/python2.7/site-packages/mercurial/", line 509, in setflag self._lm[key] = self[key], flag TypeError: flags must a 0 or 1 byte string

I've tried this with several other versions of hg, subvertpy, and hgsubversion to no avail. All other llvm repos can be cloned just fine.

Comments (2)

  1. Augie Fackler repo owner

    I think this was actually fixed in Mercurial recently (rather than in hgsubversion!), so maybe try a newer hg and a newer hgsubversion in concert and see if that helps?

  2. Rainer Orth

    The latest released versions of each component actually did the trick:

    $ hg version --svn Mercurial Distributed SCM (version 4.7) [...] hgsubversion: 1.9.2 Subversion: 1.9.7 bindings: Subvertpy 0.10.1

    Thanks for the suggestion.

  3. Log in to comment