views:

35

answers:

1

I have a web project set to deploy from a git repo.

If I set up the project with http submodules (e.g. http://github....etc) it fails to deploy, with:

** [my-dev-server.com :: out] Synced lib/vendor/odm
** [my-dev-server.com :: out] Cloning into lib/vendor/odm...
** [my-dev-server.com :: err] fatal: Unable to find remote helper for 'http'
** [my-dev-server.com :: err] Clone of 'http://github.com/doctrine/mongodb-odm.git' into submodule path 'lib/vendor/odm' failed

Seems to be to do with the submodule access method as it works fine if I:

  • remove the submodules
  • set the submodules via ssh rather than http (i.e. git@github.... etc)

Does anyone know what causes this error and how to fix it?

I don't think there is an issue with using http for a submodule as I've seen other capistrano tutorials with http submodules, and no mention of it being a special case.

Thanks.

A: 

Found the solution eventually.

Wasn't to do with Capistrano. Even a git clone http://.... would fail on the production server.

Found my answer here https://forums.hostingplayground.com/showthread.php?p=2562

In short, seems that CentOS can end up with an older version of Curl than git needs to be able to clone with http.

I followed the instructions in that post to upgrade Curl on the production server, and then the deploy task worked fine with the http submodules.