hg-git icon indicating copy to clipboard operation
hg-git copied to clipboard

AttributeError: '_Vendor' object has no attribute 'connect_ssh', hg 3.3.3, hg-git 0.8.0

Open Triquetra opened this issue 9 years ago • 3 comments

I get the following error when attempting to push:

pushing to git+ssh://[email protected]/user/triquetra.git
** unknown exception encountered, please report by visiting
** http://mercurial.selenic.com/wiki/BugTracker
** Python 2.7.9 (default, Feb 11 2015, 16:08:53) [GCC 4.9.2]
** Mercurial Distributed SCM (version 3.3)
** Extensions loaded: rebase, purge, hggit
Traceback (most recent call last):
  File "/usr/lib/python-exec/python2.7/hg", line 43, in <module>
    mercurial.dispatch.run()
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 28, in run
    sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 71, in dispatch
    ret = _runcatch(req)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 140, in _runcatch
    return _dispatch(req)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 860, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 621, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 951, in _runcommand
    return checkargs()
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 922, in checkargs
    return cmdfunc()
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 857, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 711, in check
    return func(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/mercurial/commands.py", line 5115, in push
    bookmarks=opts.get('bookmark', ()))
  File "/usr/lib64/python2.7/site-packages/mercurial/extensions.py", line 194, in wrap
    return wrapper(origfn, *args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/hggit/util.py", line 42, in inner
    return f(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/hggit/__init__.py", line 258, in exchangepush
    pushop.cgresult = repo.githandler.push(remote.path, revs, force)
  File "/usr/lib64/python2.7/site-packages/hggit/git_handler.py", line 310, in push
    old_refs, new_refs = self.upload_pack(remote, revs, force)
  File "/usr/lib64/python2.7/site-packages/hggit/git_handler.py", line 964, in upload_pack
    new_refs = client.send_pack(path, changed, genpack)
  File "/usr/lib64/python2.7/site-packages/dulwich-0.8.5-py2.7-linux-x86_64.egg/dulwich/client.py", line 439, in send_pack
    proto, unused_can_read = self._connect('receive-pack', path)
  File "/usr/lib64/python2.7/site-packages/dulwich-0.8.5-py2.7-linux-x86_64.egg/dulwich/client.py", line 625, in _connect
    con = get_ssh_vendor().connect_ssh(
AttributeError: '_Vendor' object has no attribute 'connect_ssh'

Triquetra avatar Feb 27 '15 21:02 Triquetra

I get a similar error when attempting to clone a new repository:

hg clone git+ssh://[email protected]/mgorny/eclean-kernel.git ./eclean-kernel
** unknown exception encountered, please report by visiting
** http://mercurial.selenic.com/wiki/BugTracker
** Python 2.7.9 (default, Feb 11 2015, 16:08:53) [GCC 4.9.2]
** Mercurial Distributed SCM (version 3.3.3)
** Extensions loaded: rebase, purge, hggit
Traceback (most recent call last):
  File "/usr/lib/python-exec/python2.7/hg", line 43, in <module>
    mercurial.dispatch.run()
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 28, in run
    sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 71, in dispatch
    ret = _runcatch(req)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 140, in _runcatch
    return _dispatch(req)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 863, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 624, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 954, in _runcommand
    return checkargs()
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 925, in checkargs
    return cmdfunc()
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 860, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 711, in check
    return func(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/mercurial/commands.py", line 1374, in clone
    branch=opts.get('branch'))
  File "/usr/lib64/python2.7/site-packages/mercurial/hg.py", line 434, in clone
    destpeer.local().clone(srcpeer, heads=revs, stream=stream)
  File "/usr/lib64/python2.7/site-packages/mercurial/localrepo.py", line 1792, in clone
    ret = exchange.pull(self, remote, heads).cgresult
  File "/usr/lib64/python2.7/site-packages/mercurial/extensions.py", line 194, in wrap
    return wrapper(origfn, *args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/hggit/util.py", line 42, in inner
    return f(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/hggit/__init__.py", line 233, in exchangepull
    pullop.cgresult = repo.githandler.fetch(remote.path, heads)
  File "/usr/lib64/python2.7/site-packages/hggit/git_handler.py", line 231, in fetch
    refs = self.fetch_pack(remote, heads)
  File "/usr/lib64/python2.7/site-packages/hggit/git_handler.py", line 1052, in fetch_pack
    ret = client.fetch_pack(path, determine_wants, graphwalker, f.write, progress.progress)
  File "/usr/lib64/python2.7/site-packages/dulwich-0.8.5-py2.7-linux-x86_64.egg/dulwich/client.py", line 470, in fetch_pack
    proto, can_read = self._connect('upload-pack', path)
  File "/usr/lib64/python2.7/site-packages/dulwich-0.8.5-py2.7-linux-x86_64.egg/dulwich/client.py", line 625, in _connect
    con = get_ssh_vendor().connect_ssh(
AttributeError: '_Vendor' object has no attribute 'connect_ssh'

Triquetra avatar Apr 17 '15 03:04 Triquetra

For anyone else looking for the resolution to this issue on a gentoo system (like mine), my python installation was messed up because of root use of pip to install/update python packages.
The solution was to reinstall python-exec as follows: /usr/bin/python3.3 /usr/lib/python-exec/python3.3/emerge -1 dev-lang/python-exec (substitute your installed python version) and then update dulwich to version 0.10.0.

Triquetra avatar Apr 18 '15 02:04 Triquetra

For all Windows (7, 64bit) users: Updating Python to 3.6.0 and TortoiseHg to 4.0.1 worked for me

cnmuc avatar Dec 27 '16 19:12 cnmuc