Note : bien que le cas d'utilisation décrit concerne l'utilisation de submodules dans un projet, la même chose s'applique à un clone git
normal d'un dépôt par HTTP.
J'ai un projet sous contrôle Git. J’aimerais ajouter un sous-module :
git submodule add http://github.com/jscruggs/metric_fu.git vendor/plugins/metric_fu
Mais j'obtiens
...
got 1b0313f016d98e556396c91d08127c59722762d0
got 4c42d44a9221209293e5f3eb7e662a1571b09421
got b0d6414e3ca5c2fb4b95b7712c7edbf7d2becac7
error: Unable to find abc07fcf79aebed56497e3894c6c3c06046f913a under http://github.com/jscruggs/metri...
Cannot obtain needed commit abc07fcf79aebed56497e3894c6c3c06046f913a
while processing commit ee576543b3a0820cc966cc10cc41e6ffb3415658.
fatal: Fetch failed.
Clone of 'http://github.com/jscruggs/metric_fu.git' into submodule path 'vendor/plugins/metric_fu'
J'ai configuré mon HTTP_PROXY :
c:\project> echo %HTTP_PROXY%
http://proxy.mycompany:80
J'ai même un paramètre Git global pour le proxy http :
c:\project> git config --get http.proxy
http://proxy.mycompany:80
Quelqu'un a-t-il réussi à faire fonctionner les récupérations HTTP de manière cohérente via un proxy ? Ce qui est vraiment étrange, c'est que quelques projets sur GitHub fonctionnent bien ([awesome_nested_set
][1] par exemple), mais d'autres échouent systématiquement ([rails][2] par exemple).
[1] : http://github.com/collectiveidea/awesome_nested_set/ [2] : http://github.com/rails/rails/
Ce qui a finalement fonctionné, c'est le paramétrage de la variable d'environnement http_proxy
. J'avais défini HTTP_PROXY
correctement, mais git préfère apparemment la version en minuscules.
Il semble que vous utilisiez une compilation mingw de Git sous Windows (ou peut-être une autre dont je n'ai pas entendu parler). Il existe des moyens de déboguer cela : Je crois que tout le travail de proxy http pour git est effectué par curl. Définissez cette variable d'environnement avant de lancer git :
GIT_CURL_VERBOSE=1
Cela devrait au moins vous donner une idée de ce qui se passe dans les coulisses.
Ce n'est pas un problème avec votre proxy. C'est un problème avec github (ou git). Je n'y arrive pas non plus avec git-1.6.0.1 sous linux. Le [Bug][1] a déjà été signalé (par vous, pas moins).
Assurez-vous de supprimer vos pâtés, ils sont déjà sur Google. Edit : J'ai dû rêver, je suppose que vous ne pouvez pas les supprimer. Utilisez [Gist][2] à la place ?
[1] : http://logicalawesome.lighthouseapp.com/projects/8570/tickets/992-git-submodule-add-fails [2] : http://gist.github.com/