Submódulos

Información general

Un submódulo de Git le permite integrar otros proyectos de Git en su código, sin necesidad de copiar y pegar todo el código.

Sus módulos personalizados pueden depender de los módulos de otros repositorios. En cuanto a Odoo, esta función le permite agregar módulos desde otros repositorios de Git en las ramas de su repositorio. Agregar estas dependencias en su rama a través de los submódulos hace que el despliegue de su código y su servidor sea más fácil, ya que puede clonar los repositorios que se agregaron como submódulos, al mismo tiempo que clona su propio repositorio.

Además, puede elegir la rama del repositorio que se agrega como submódulo y tiene el control de la revisión que desea. Es usted quien decide si quiere anclar el submódulo a una revisión específica y cuándo quiere actualizarlo a una revisión más reciente.

En Odoo.sh, los submódulos le dan la posibilidad de usar y depender de módulos disponibles en otros repositorios. La plataforma detectará que agregó módulos a través de submódulos en sus ramas y los agregará a su addons path de forma automática para que pueda instalarlos en su base de datos.

Si agrega repositorios privados como submódulos en sus ramas, debe configurar una clave de despliegue en los ajustes de su proyecto de Odoo.sh y en los ajustes de su repositorio. De otra forma, Odoo.sh no podrá descargarlos. El proceso se describe en el capítulo Ajustes > Submódulos.

Agregar un submódulo

Con Odoo.sh (método simple)

Advertencia

Actualmente no es posible agregar repositorios privados con este método. Sin embargo, puede hacerlo con Git.

En Odoo.sh, en la vista de ramas de su proyecto, elija la rama en la que desea agregar un submódulo.

En la esquina superior derecha, haga clic en el botón de Submódulo y luego haga clic en Ejecutar.

../../../_images/advanced-submodules-button.png

Aparecerá un cuadro de diálogo con un formulario. Complete los campos como se indica a continuación:

  • URL del repositorio: el URL SSH del repositorio.

  • Rama: la rama que desea utilizar.

  • Ruta: la carpeta de la rama en la que desea agregar este submódulo.

../../../_images/advanced-submodules-dialog.png

En Github, puede obtener el URL del repositorio con el botón de Clonar o descargar del repositorio. Asegúrese de usar SSH.

../../../_images/advanced-submodules-github-sshurl.png

Con Git (método avanzado)

En una terminal, en la carpeta donde se clonó su repositorio de Git, haga el checkout de la rama en la que desea agregar un submódulo:

$ git checkout <branch>

Posteriormente, agregue el submódulo mediante el comando a continuación:

$ git submodule add -b <branch> <git@yourprovider.com>:<username/repository.git> <path>

Reemplace

  • <git@yourprovider.com>:<username/repository.git> con el URL SSH del repositorio que desea agregar como submódulo.

  • <branch> con la rama que desea usar en el repositorio mencionado en el punto anterior.

  • <path> con la carpeta en la que desea agregar este submódulo.

Confirme y haga el push de sus cambios:

$ git commit -a && git push -u <remote> <branch>

Reemplace

  • <remote> con el repositorio en el que desea hacer el push de sus cambios. Para una configuración estándar de Git, este es el origen.

  • <branch> con la rama en la que desea hacer el push de sus cambios. Probablemente es la rama en la que usó el comando git checkout en el primer paso.

Puede consultar la documentación git-scm.com para obtener más detalles sobre los submódulos Git. Por ejemplo, si desea actualizar sus submódulos para que tengan la revisión más reciente, puede consultar el capítulo Introducción de cambios ascendentes.

Ignorar módulos

Si agrega un repositorio que contiene muchos módulos, tal vez quiera ignorar algunos de ellos en caso de que haya algunos que se instalaron de forma automática. Para hacerlo, puede agregar a la carpeta de su submódulo el prefijo .. La plataforma ignorará esta carpeta y podrá elegir manualmente sus módulos al crear enlaces simbólicos para ellos desde otra carpeta.