Estoy usando GIT para administrar un proyecto del Sistema de gestión de contenido (CMS). El CMS puede tener múltiples plugins (módulos).submódulo o sub-repositorio Git o remoto?
Así que, básicamente, quiero tener 3 tipos de repositorios:
- El desarrollo básico de la CMS (cada nuevo proyecto es un check out de la última estable & versión sin configurar)
- 1 repositorio por módulo/plugin . (Cada nuevo proyecto será la comprobación de la última versión estable del módulo que quieren poner en práctica)
- 1 repositorio por proyecto (cada cliente será un depósito que representan la personalización del núcleo CMS y los módulos)
Para el tipo 1 & 2, supongo que es un repositorio básico simple. Pero cuando se trata de proyecto de cliente, que se confunden:
- primer lugar voy a clonar el CMS, y luego ir en el/modules/carpeta y clonar de nuevo todos los módulos necesarios? ¡Eso hará un repositorio dentro de un repositorio! ¿El primer repositorio intentará registrar la carpeta .git/de cada módulo?
- No puedo usar el submódulo ya que cada cliente necesita que sus módulos sean personalizados.
- Si modifico un componente central de un módulo (no una personalización, solo una corrección de errores), ¿puedo insertar ese único archivo en el repositorio de módulos original?
- (no hablar del módulo unittest que se extendió por todas partes)
Así que la pregunta es: ¿Cómo debería organizar el repositorio (s)/archivos/carpetas con el fin de ser eficientes?
Bien, he leído el submódulo de ayuda de git y dicen: "No deben confundirse con mandos a distancia, que están destinados principalmente a las ramas del mismo proyecto; los submódulos están destinados a diferentes proyectos que le gustaría hacer parte de su árbol fuente, mientras que el historial de los dos proyectos sigue siendo completamente independiente y no puede modificar el contenido del submódulo desde el proyecto principal ". ... en mi caso, querré modificar el submódulo dentro del proyecto del cliente en caso de que necesite personalizar un complemento. ¿Ahora me dices que podemos modificar los submódulos? – FMaz008
sí. Modifique el código del complemento del cliente, comprométalo e inserte los cambios en (2), luego vaya al código CMS del cliente y comprométalo e inserte el cambio en el complemento (actualiza el hash SHA) en (1). –
Ok, suena como una buena respuesta, pero aún tengo una pregunta complementaria sobre la organización/estructura de la carpeta: http://stackoverflow.com/questions/5461617/using-git-and-submodule-whats-a-good-folder -estructura – FMaz008