0

I tried to implement fetch and this exception was raised:

Rugged::NetworkError: This transport isn't implemented. Sorry

I am able to retrieve a remote instance:

remote = Rugged::Remote.lookup(repo, remote_name)
remote.connect(:fetch)
# => Rugged::NetworkError: This transport isn't implemented. Sorry

I retrieved the development version of the gem as directed in the README:

gem 'rugged', git: 'git://github.com/libgit2/rugged.git', branch: 'development', submodules: true

How do I gain access to the connect method?

Holger Just
  • 52,918
  • 14
  • 115
  • 123
rhodee
  • 1,257
  • 1
  • 14
  • 27

2 Answers2

1

libgit2 uses openssl for HTTPS and libssh2 for ssh. You need the development packages for them in order for the embedded libgit2 to build with support for those transports.

Carlos Martín Nieto
  • 5,207
  • 1
  • 15
  • 16
  • I ran `brew install openssl libssh2` and same error. How precisely do should I download the packages? – rhodee Mar 07 '14 at 21:46
  • @rhodee how did you figure this out? I ran the brew command, but `libgit2` still isn't (apparently) linking `libssh2` when it compiles. – Luke May 12 '14 at 14:49
0

Just to follow up on this, you need to install these:

openssl libssh2 libssl-dev pkg-config

Then you need to reinstall libgit2(rebuild), because the original shared libraries do not know that you've installed the new packages. See http://www.pygit2.org/install.html for installing.

Michael Dotson
  • 519
  • 3
  • 7