Git submodules
Durante la preparación de la migración de SVN a GIT (Ver Migrando de svn a git) me encontré con que en varios proyectos habían varios trunks. El árbol de directorios era algo así:
Proyecto
├── tags
└── trunk
└── test
├── branches
├── tags
└── trunk
Ignorando si esto es o no una buena práctica, probé de que manera hacer lo mismo utilizando GIT, lo que me llevo a probar git submodules.
Aprovechando que GitBlit tiene soporte nativo para los submodules, armé lo siguiente:
En primer lugar, cree diferentes repositorios en GitBlit utilizando el separador / para definir la pertenencia al mismo proyecto.
Después de crear varios repositorios, la estructura me quedó de esta manera:
Los repositorios "A New Module" y " The New Hope" serían los diferentes componentes de nuestro proyecto, y en "Main Project" estaría el árbol completo.
Armando la estructura
Despues de hacer un git clone del repositorio MainProject, agregué los submodulos mediante los siguientes comandos:
- git submodule add ssh://cmarquez@git.ascentio.com.ar:29418/A-New-Project/ANewModule.git ANewModule Para agregar ANewModule
- git submodule add ssh://cmarquez@git.ascentio.com.ar:29418/A-New-Project/TheNewHope.git TheNewHope Para agregar TheNewHope
La estructura de carpetas va quedando de la siguiente manera:
Si hacemos un GitStatus, podemos ver que se generó un archivo .gitmodules
Si comiteamos y pusheamos al servidor, vamos a poder ver lo siguiente a través de la interfaz web:
Ahi podemos ver que las carpetas hacen referencia a los otros repositorios. De esta manera, podemos trabajar directamente en un modulo o en la carpeta que contiene todos los modulos, cada uno con un ciclo de evolución diferente.
Labels: Ascentio, git, git submodules, svn, tutorial
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home