J'ai des lignes dans ma sortie de gel de pip comme :
-e [email protected]:widgets.git@3bdaf7d07c44a87c38beb1e8abd163a7edf99adc#egg=widgets
-e [email protected]:[email protected]#egg=gadgets
Quand vient le temps d'installer à l'aide de pip install -r requirements.txt
il semble que pip identifie de manière incorrecte example.com:[email protected]
comme l'URL complète du référentiel git alors qu'il devrait simplement être example.com:gadgets.git
et qu'il devrait ensuite consultez le commit 3bda...99adc.
Si j'essaie d'installer en utilisant la sortie de gel de pip, par exemple
pip install -e [email protected]:[email protected]#egg=gadgets
J'ai la même erreur.
Tout cela utilise pip 1.5.4
Notez qu'avec les modifications suivantes, cela fonctionne correctement :
pip install -e [email protected]:/path/to/project/[email protected]#egg=project
ou alors
pip install -e [email protected]:project.git#egg=project
Bien que dans ce dernier, il ne remontera évidemment que le commit actuel et non celui spécifié dans 3bdaf…
De plus, pour des raisons que je ne comprends pas, cela fonctionne pour les requêtes adressées à github.
C'est-à-dire,
pip install -e [email protected]:JordanReiter/[email protected]#egg=github_project
travaux.
Ceci est similaire à #6293. L'analyseur (basé sur stdlib urlsplit
a des problèmes pour identifier la partie chemin de l'URL lorsqu'il ne contient aucun /
du tout, et identifie le tout après +
comme netloc
. La variante sans rev fonctionne totalement par accident car netloc
et path
sont ensuite joints et transmis à Git (qui fait automatiquement ce qu'il faut).
Les discussions dans #6293 semblent favoriser l'abandon complet de la prise en charge des URL de style SCP, donc la meilleure solution ici serait avant que pip freeze
crache des URL git+ssh://
place.
Clôture car nous proposons de supprimer le formulaire git+git@
dans #7554.