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 a las ramas de su repositorio. Agregar estas dependencias a su rama mediante submódulos facilita el despliegue de su código y sus servidores, ya que puede clonar los repositorios que se agregaron como submódulos mientras 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. Usted 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 permiten usar y depender de los módulos que están disponibles en otros repositorios. La plataforma detectará que agregó módulos mediante submódulos en sus ramas y los agregará a su ruta de complementos de forma automática para que pueda instalarlos en su base de datos.

Si agrega repositorios privados como submódulos a sus ramas deberá configurar una clave de despliegue en los ajustes de su proyecto de Odoo.sh y en los de su repositorio. De lo contrario, Odoo.sh no podrá descargarlos. En el capítulo Ajustes > Submódulos encontrará la descripción del proceso.

Agregar un submódulo

Con Odoo.sh (método simple)

Advertencia

Por el momento no es posible agregar repositorios privados con este método, pero puede hacerlo con Git.

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

Haga clic en el botón Submódulo que se encuentra en la esquina superior derecha y luego en Ejecutar.

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

Aparecerá un cuadro de diálogo con un formulario. Complete los campos con la siguiente información:

  • URL del repositorio: La URL SSH del repositorio.

  • Rama: La rama que desea utilizar.

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

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

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

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

Con Git (método avanzado)

En la terminal, diríjase a la carpeta donde clonó su repositorio de Git y vaya a la rama a la que desea agregar un submódulo con el comando checkout:

$ git checkout <branch>

Luego, agregue el submódulo con el siguiente comando:

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

Reemplace

  • <git@yourprovider.com>:<username/repository.git> con la 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 suba sus cambios con los comandos commit y push:

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

Reemplace

  • <remote> con el repositorio al que desea subir sus cambios. Corresponde al origen en una configuración estándar de Git.

  • <branch> con la rama a la que desea subir sus cambios. Es muy probable que sea la rama en la que usó el comando git checkout en el primer paso.

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

Ignorar módulos

Si agrega un repositorio que contiene muchos módulos, es posible que quiera ignorar algunos de ellos en caso de que se hayan instalado de forma automática. Para hacerlo, puede agregar el prefijo . a la carpeta de su submódulo, así la plataforma la ignorará y podrá elegir sus módulos de forma manual al crear enlaces simbólicos para ellos desde otra carpeta.