¿Cómo usar Git con "múltiples (miles) proyectos" en un solo repository?

Tenemos un gran repository SVN con múltiples proyectos. Algo como – http://plugins.svn.wordpress.org/

¡Nuestro repository es un poco más complicado ya que también tiene un "proyecto" en varios niveles! Estamos planeando mudarnos a Git.

Mi preocupación es – He escuchado que Git no le permite trabajar en repos parciales (basado en PATH) Entonces, incluso si tengo que trabajar en decir http://plugins.svn.wordpress.org/rtsocial/trunk , todo el repository se downloadá ¿Es esto cierto? ¿Hay algún workaroud para esto?

Estamos planeando usar GitHub para que no podamos permitirnos tener planes de compra con miles de repositorys privados para todos nuestros proyectos. Preferimos mantener la mayoría de los proyectos en un gran repository ya que los proyectos son muy pequeños (tema de WordPress, plugin de WordPress, etc.)

Además de la restricción de planes de GitHub, la gestión de miles de repos será una gran tarea administrativa, supongo (tenemos más de 40 usuarios en SVN y cada mes se agregan algunos más)

¿Hay alguna manera de seguir adelante con Git o deberíamos quedarnos solo con SVN? En una nota al margen, si Git prefiere "un proyecto = un repository", ¿alguna alternativa a GitHub donde se permiten repositorys "ilimitados privados"?

Gracias a todos por ayuda con anticipación.

En git, debería considerar configurar repositorys separados para cada uno de sus proyectos. Lo que dijiste sobre "clonar" todo el repository para get un proyecto siné es correcto, y no hay soluciones para ello. (No se confunda con términos como checkout disperso, etc. – el término pago y envío es diferente en Git que en SVN). No existe el concepto de clonar solo una carpeta en particular en Git, como se puede hacer en SVN.

Sin embargo, como mencionas que los proyectos son pequeños, puedes agrupar algunos de ellos lógicamente, como temas, etc.

También puede mirar BitBucket , que le permite tener repositorys Git privados ilimitados y gratuitos . O puede alojar repositorys en su propio server, es bastante sencillo. Con algo así como la gitolite , puede administrar y mantener fácilmente muchos repositorys.

Mi preocupación es – He escuchado que Git no le permite trabajar en repos parciales (basado en PATH) Entonces, incluso si tengo que trabajar en decir http://plugins.svn.wordpress.org/rtsocial/trunk , todo el repository se downloadá ¿Es esto cierto? ¿Hay algún workaroud para esto?

Sí. No puedes verificar solo parte de un repository

Use un repository por proyecto. No hay otra forma sensata de organizar las cosas. Puede implementar una jerarquía a través de submodules, lo que le permite include un repository separado como un "subproyecto" de un repository diferente.

Git depende de límites de contenido sanos para funcionar bien. Si intentas volcar "miles de proyectos" en un único repository de Git, tendrás un desastre absoluto e inmanejable, garantizado.

En una nota final, Git! = GitHub. No es necesario que pagues por el alojamiento de Git en GitHub para usar Git, y no veo por qué lo harías, ya que obviamente no pretendes utilizar ninguna de las funciones de encoding social de GitHub con más de 1000 repositorys privados.

Cualquier máquina puede alojar un repository de Git para que las personas lo empujen y lo extraigan. ¿Por qué no simplemente instalar sus "miles" de repositorys en un server barato basado en Linux en algún lugar de su oficina? Todo lo que tenga suficiente espacio en el disco duro para llevar a cabo los proyectos, una máquina de 10 años con un disco duro de 100 GB podría hacer el trabajo.

En una nota al margen, si Git prefiere "un proyecto = un repository", ¿alguna alternativa a GitHub donde se permiten repositorys "ilimitados privados"?

GetHub vende la capacidad de licenciar e instalar una copy local de su software, llamada GitHub Firewall . Podrá configurar repositorys privados ilimitados, así como administrar usuarios, etc. El precio comienza en $ 5000 / año .