Submódulos¶
Información general¶
Un submódulo de Git te permite integrar otros proyectos de Git en tu código sin que tengas que copiar y pegar todo el código.
De hecho, tus módulos personalizados pueden depender de los módulos de otros repositorios. En Odoo, esta función te permite agregar módulos de otros repositorios de Git a las ramas de tu propio repositorio. Agregar estas dependencias a tu rama mediante submódulos facilita el despliegue de tu código y servidores, ya que puedes clonar los repositorios agregados como submódulos al mismo tiempo que clonas tu propio repositorio.
Además, puedes elegir la rama del repositorio agregado como submódulo y controlar la revisión que quieres usar. Tú decides si quieres fijar el submódulo a una revisión específica y cuándo actualizar a una revisión más reciente.
En Odoo.sh, los submódulos te permiten usar y depender de los módulos que están disponibles en otros repositorios. La plataforma detecta que agregaste módulos mediante submódulos en tus ramas y los agrega a tu ruta de complementos en automático para que puedas instalarlos en tus bases de datos.
Si agregas repositorios privados como submódulos en tus ramas deberás configurar una llave de despliegue en los ajustes de tu proyecto de Odoo.sh y en los de tu repositorio. De lo contrario, Odoo.sh no podrá descargarlos. En el capítulo Ajustes > Submódulos encontrarás el proceso detallado.
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 puedes hacerlo con Git.
Elige la rama a la que quieres agregar un submódulo desde la vista de ramas de tu proyecto en Odoo.sh.
Haz clic en el botón Submódulo que se encuentra en la esquina superior derecha y luego en Ejecutar.

Aparecerá un cuadro de diálogo con un formulario. Completa los campos con la siguiente información:
URL del repositorio: La URL SSH del repositorio.
Rama: La rama que quieres utilizar.
Ruta: La carpeta en la que quieres agregar este submódulo dentro de tu rama.

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

Con Git (método avanzado)¶
En la terminal, dirígete a la carpeta donde clonaste su repositorio de Git y, con el comando checkout, ve a la rama a la que quieres agregar un submódulo:
$ git checkout <branch>
Luego, agrega el submódulo con el siguiente comando:
$ git submodule add -b <branch> <git@yourprovider.com>:<username/repository.git> <path>
Reemplaza
<git@yourprovider.com>:<username/repository.git> con la URL SSH del repositorio que quieres agregar como submódulo.
<branch> con la rama que quieres usar en el repositorio mencionado en el punto anterior.
<path> con la carpeta a la que quieres agregar este submódulo.
Confirma y sube tus cambios con los comandos commit
y push
:
$ git commit -a && git push -u <remote> <branch>
Reemplaza
<remote> con el repositorio al que quieres subir tus cambios. En una configuración estándar de Git, corresponde al origen.
<branch> con la rama a la que quieres subir tus cambios. Es muy probable que sea la rama que usaste con el comando
git checkout
en el primer paso.
Puedes leer la documentación de git-scm.com para obtener más detalles sobre los submódulos de Git. Por ejemplo, si quieres actualizar tus submódulos para que tengan la revisión más reciente, puedes consultar el capítulo Llegada de los cambios de Upstream.
Ignorar módulos¶
Si agregas un repositorio que contiene muchos módulos, es posible que quieras ignorar algunos de ellos en caso de que se hayan instalado de forma automática. Para hacerlo, puedes agregar el prefijo .
al nombre de la carpeta del submódulo, así la plataforma la ignorará y podrás elegir tus módulos de forma manual al crear enlaces simbólicos a ellos desde otra carpeta.