2011-08-25 1 views
5

pip gestionnaire de paquets permet installing from various VCS y compris git:Est-il possible de cloner uniquement certains commit d'un repo git avec profondeur 1?

Pip prend actuellement en charge le clonage sur git, git + http et git + ssh:

-e git://git.myproject.org/MyProject.git#egg=MyProject 
-e git+http://git.myproject.org/MyProject/#egg=MyProject 
-e git+ssh://[email protected]/MyProject/#egg=MyProject 

Passing noms de branche, une validation de hachage ou un nom de balise est également possible:

-e git://git.myproject.org/[email protected]#egg=MyProject 
-e git://git.myproject.org/[email protected]#egg=MyProject 
-e git://git.myproject.org/[email protected]#egg=MyProject 

C'est agréable quand le packag e est petit, cependant, il devient assez lent lorsque le paquet est énorme (par ex. Django). Si je n'ai besoin que de la dernière validation de la branche master, alors je pourrais utiliser le paramètre --depth 1 pour git clone.

Est-il possible d'obtenir seulement un certain commit sans l'historique complet des repo en général? Au moins de github?

Répondre

2

Vous ne pouvez ni clone ni fetch d'un engagement particulier à distance, beaucoup moins une profondeur de 1, pour des raisons de sécurité: http://thread.gmane.org/gmane.comp.version-control.git/73368/focus=73994

http://git.661346.n2.nabble.com/Fetch-by-SHA-missing-td5604552.html

+2

Merci pour les liens. Je peux obtenir une archive tar pour un commit/branch/tag particulier à la place, par exemple. 'mkdir src; curl https://nodeload.github.com/django/django/tarball/1.3 | tar xz --directory =./src' et ensuite installer depuis le répertoire 'pip install src/django-django- *' – Andrei

1

Au meilleur de ma connaissance, non. Vous voudrez peut-être poser à ce sujet sur le git mailing list.

Questions connexes