2011-01-06 11 views
6

Hay 1 proyecto RoR principal y 2 proyectos adicionales comparten algunas partes del proyecto principal - modelos, plugins, etc.buena manera de organizar repositorio git de múltiples proyectos

Actualmente, todos los proyectos están bajo mismo repositorio SVN SVN con las referencias externas para partes compartidas.

¿Cuál es la mejor manera de mover ese diseño a git?

Respuesta

3

Necesitará un repositorio para cada una de las partes. (cada proyecto y uno o más para las partes compartidas).

Para incluir estas partes compartidas hay dos posibilidades.

Primero, el más fácil, creas una gema (privada) para las partes compartidas, lo que significa que no necesitas vincular nada, solo agrega gem [gemname] a tu Gemfile. Cuando actualice la gema, todos los proyectos usarán el código modificado.

Cuando desee incluir el código externo en su proyecto, necesita un poco de organización. Crea un mapa raíz donde clona tanto el repositorio compartido como el de proyecto. Luego, crea un enlace simbólico (relativo) a la carpeta de código compartido. Simplemente puede agregar este enlace simbólico a su repositorio git y confirmarlo. Debe actualizar y confirmar ambos repositorios por separado.

Un ejemplo del segundo método:

- projectfolder 
--- shared code 
--- project code 
----- lib 
------- shared (link to shared code) 

El enlace de código compartido es creado por el comando ln -s "código ../../../shared" compartida

Por supuesto, esto solo funciona en sistemas compatibles con enlaces simbólicos (mac y * nix)

2

Aunque acepté la primera respuesta, elegimos un enfoque bastante diferente.

Dado que esencialmente todas las aplicaciones son solo aspectos diferentes de 1 proyecto (frontend, backend y api) comparten MUCHO, por lo tanto decidimos ponerlos todos en 1 repositorio y enlazar partes compartidas (git puede manejar eso).

Esto simplifica la organización del repositorio pero complica un poco las secuencias de comandos de implementación, lo que nos valió para nosotros.

Cuestiones relacionadas