tag - Usando git para un proyecto con muchos, muchos repositorios.
git push tag (2)
¿Por qué no echar un vistazo a la herramienta de repo que usa Android?
El proyecto Plone consta de 192 repositorios diferentes: https://github.com/plone/
Durante el desarrollo, a veces será necesario tocar 2 o 4 o 10 reposiciones diferentes para corregir un error o implementar una función. Sería fantástico si todos estos se pudieran ramificar y fusionar (por ejemplo, un problema de cierre de solicitud de extracción que contiene confirmaciones para repo1 , repo2 y repo3 ).
Las versiones requieren que todo el conjunto de repos sea ramificado y etiquetado.
Pre-git, un lanzamiento se definió mediante un archivo que enumera los números de revisión svn de todos los módulos que conforman el lanzamiento. ¿Git nos da una forma más ágil de trabajar?
A primera vista, parece que "Superproyectos" podría ser aplicable:
Puede definir más específicamente las relaciones entre los proyectos con etiquetas y ramas en los superproyectos.
http://progit.org/book/ch6-6.html#superprojects "Git / Submodules and Superprojects" parece confirmar esto, pero sigue siendo vago (no aborda etiquetas ni sucursales). http://en.wikibooks.org/wiki/Git/Submodules_and_Superprojects
Otra herramienta que parece relevante es el mr
Joey Hess:
El comando mr (1) puede desproteger, actualizar o realizar otras acciones en un conjunto de repositorios como si fueran un repositorio combinado.
http://kitenet.net/~joey/code/mr/ (Me preocuparía que esto diera como resultado 192 ramas diferentes que tienen el mismo nombre, en lugar de 1 rama que une todos los repos.)
Esta pregunta parece relevante: ¿Alguien realmente está usando git super / subprojects? Una respuesta dice:
nuestro proyecto (bitweaver, un sistema de gestión de contenido) es un sistema altamente modular, con cerca de 160 repositorios - http: // github.com/bitweaver/ ".
Eso suena como nuestro caso. Cita "limitaciones severas" con submódulos y recomienda mercurial. Parece que mr
podría ayudar a lidiar con esos ("ejecutar comandos git a todos los directorios en el super-repo").
Usaría los submódulos de git en un "todo" repo. Además, considera "git slave" si encuentras trabajo que abarca muchos repositorios. Eso puede ahorrar mucho esfuerzo.