2012-02-03 7 views
8

Tengo una colección de repositorios git que están independientemente versionados pero relacionados entre sí. Por ejemplo, al agregar una función, es posible que deba agregar funcionalidad a una biblioteca compartida y luego extender una aplicación o servicio para aprovechar esa funcionalidad.¿Es posible administrar múltiples repositorios de forma coherente?

Actualmente, tendría que crear una rama en cada uno de los repositorios que toco mientras trabajo en esa característica. Lo que me gustaría hacer, sin embargo, es simplificar el proceso ramificando y fusionando esos múltiples repositorios a la vez (para reducir la probabilidad de olvidar la bifurcación, o comprometer/fusionar en un repositorio pero no en otro).

¿Hay una manera simple de ramificar y combinar varios repositorios a la vez, o es una tarea más adecuada para una colección de scripts de ayuda? Si es este último, ¿hay scripts disponibles que ya lo logren?

+2

posible duplicado de [Administración de muchos repositorios git] (http://stackoverflow.com/questions/816619/managing-many-git-repositories) –

Respuesta

7

no hay una forma integrada de tratar con múltiples repositorios a la vez, y si se piensa en la naturaleza distribuida de Git, en realidad no es otra cosa que la convención social que puede definir eso. (Considere, ¿qué pasa si alguien extrae de usted en un repositorio, pero otro control remoto para el segundo? ¿Puede tener esta coherencia?)

Puede encontrar una herramienta como mr, que funciona con varios repositorios al mismo tiempo, útil .

Si realmente tiene cosas que están tan unidas, le aconsejo que las ponga en un repositorio. De esa forma no puedes olvidar ninguno de los pasos, porque ocurren en una operación atómica.

Sin embargo, si su código no está tan estrechamente unido, renuncie a la noción "debe ramificarse exactamente al mismo tiempo" y será más feliz.

+1

+1 mr es bastante impresionante, aunque no funciona demasiado bien en Windows – stijn

4

Puede utilizar la herramienta de recompra: https://gerrit.googlesource.com/git-repo/

  • establezca la misma rama en múltiples proyectos
  • estado de vista de múltiples repositorios (ramas, se compromete sin combinar) con un comando
  • gestionar un conjunto de repositorios (clon, sincronización, etc.) con los archivos de manifiesto
  • un montón de otras cosas interesantes
+0

el enlace está muerto – xenoterracide

+0

He actualizado el enlace. –

2

Un También, échale un vistazo a: https://github.com/fabioz/mu-repo - es una herramienta como mr y repo ya que no pude conseguir uno de esos para que funcione como lo necesitaba :)

0

Solo como una idea. No lo he intentado solo, pero me encontré con esta característica hace algún tiempo. Trate de añadir todos los repositorios buscados como submódulo a un nuevo repositorio "raíz" y utilice el siguiente comando

git submodule foreach --recursive <command> 

Puede consultar la ayuda para esto y cómo hacer frente a los submódulos. Puede usar cualquier comando que desee. comandos git y non-git.

0

El Android repo tool gestiona la creación de ramas de características en varios repositorios. Sin embargo, el comando repo upload solo se puede publicar en la revisión del código de Gerrit.

Si utiliza un administrador de repositorio de Git común como GitHub o GitLab, repo upload no funcionará; necesita el comando repo push inexistente. Implementé repo push en the Wave Computing fork of repo. Lo usamos en producción

Cuestiones relacionadas