2011-08-25 3 views
5

pip gestore di pacchetti permette installing from various VCS tra cui git:È possibile clonare solo determinati commit da un repository git con profondità 1?

Pip attualmente supporta la clonazione su git, git + http e 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 nomi filiali, un commit hash o un nome di tag è anche possibile:

-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 

Questo è bello quando il materiale di imballaggio e è piccolo, tuttavia diventa piuttosto lento quando il pacchetto è enorme (ad es. Django). Se ho bisogno solo dell'ultimo commit del ramo master, allora potrei usare il parametro --depth 1 per clone git.

È possibile ottenere solo un determinato commit senza la cronologia completa dei repo in generale? Almeno dal github?

risposta

2

Si può né clonefetch da remoto un particolare impegno, tanto meno una profondità di 1, a causa di motivi di sicurezza: 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

Grazie per i collegamenti. Posso ottenere un tarball per un particolare commit/branch/tag, ad es. 'mkdir src; curl https://nodeload.github.com/django/django/tarball/1.3 | tar xz --directory =./src' e quindi installare dalla directory 'pip install src/django-django- *' – Andrei