Este repositorio automatiza el proceso el desarrollo para OneCluster.
Go to file
2024-06-26 11:06:50 -05:00
.dev Fix: Enviroment Live and Tests 2024-06-20 16:22:13 -05:00
production Feat(WIP): Producction Mode 2024-06-20 16:28:59 -05:00
sets DOC(sets/deploy_tpv): Modules TPV 2024-06-26 11:06:50 -05:00
.env_exmple DOC(sets/deploy_tpv): Modules TPV 2024-06-26 11:06:50 -05:00
.flake8 Feat: Firts Test first tests of the environment 2024-06-20 13:57:21 -05:00
.gitignore Feat: Firts Test first tests of the environment 2024-06-20 13:57:21 -05:00
.woodpecker.yml Feat: Firts Test first tests of the environment 2024-06-20 13:57:21 -05:00
compose.deploy.yml Feat: Firts Test first tests of the environment 2024-06-20 13:57:21 -05:00
compose.test.yml Fix: Enviroment Live and Tests 2024-06-20 16:22:13 -05:00
compose.yml Fix: Enviroment Live and Tests 2024-06-20 16:22:13 -05:00
Dockerfile Fix: Enviroment Live and Tests 2024-06-20 16:22:13 -05:00
Dockerfile_Deploy Primer commit 2024-02-03 21:52:43 -05:00
Dockerfile_Test Fix: Enviroment Live and Tests 2024-06-20 16:22:13 -05:00
modules.py Fix: Basic structure 2024-06-19 16:50:54 -05:00
modules.yml Feat: Se añaden claves de modulos 2024-03-10 16:09:11 -05:00
Rakefile Fix: Enviroment Live and Tests 2024-06-20 16:22:13 -05:00
README.md Primer commit 2024-02-03 21:52:43 -05:00

Creación de Submódulos Utilizando GIT

Incorporando un Repositorio Git Existente como Submódulo en el Repositorio Activo

  1. Para agregar un nuevo submódulo, utiliza el comando git submodule add, especificando la URL absoluta o relativa del proyecto a rastrear. En este ejemplo, dentro del repositorio oc-monorepo, se incluye la rama 6.8 de la siguiente manera:
git submodule add -b 6.8 [ssh://modelo] modules/[nombre_modleo]

La salida esperada es similar a:

Cloning into 'DbConnector'...
remote: Counting objects: 11, done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 11 (delta 0), reused 11 (delta 0)
Unpacking objects: 100% (11/11), done.
Checking connectivity... done.

Por defecto, los submódulos se agregan a un directorio con el mismo nombre que el repositorio, por ejemplo, "DbConnector". Puedes especificar una ruta diferente al final del comando si deseas ubicarlo en otro lugar.

Nota: Es crucial elegir cuidadosamente la ruta de los submódulos.

Al ejecutar git status en este punto, notarás algunas adiciones:

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes to be committed:
(use "git reset HEAD <file>..." to unstage)

new file:   .gitmodules
new file:   DbConnector

El nuevo archivo .gitmodules es una configuración que almacena la relación entre la URL del proyecto y el subdirectorio local. Por ejemplo:

[submodule "DbConnector"]
path = DbConnector
url = https://github.com/chaconinc/DbConnector

Asegúrate de que la URL sea accesible para otros al clonar el proyecto.

Clonación de un Proyecto con Submódulos

Al clonar un proyecto con submódulos, por defecto se obtienen los directorios que contienen submódulos, pero no se descargan los archivos dentro de ellos. Ejecuta:

git clone --recurse-submodules https://github.com/chaconinc/MainProject

Esto inicializará y actualizará automáticamente cada submódulo en el repositorio.

Si olvidaste usar --recurse-submodules al clonar, puedes combinar los pasos git submodule init y git submodule update ejecutando git submodule update --init. Para inicializar, obtener y cambiar también cualquier submódulo anidado, utiliza git submodule update --init --recursive.

Trabajando en un Proyecto con Submódulos

Ahora que tenemos una copia del proyecto con submódulos, colaboraremos tanto en el proyecto principal como en el submódulo.

Incorporando Cambios Ascendentes desde el Control Remoto del Submódulo

Para verificar nuevos cambios en un submódulo, ve al directorio y ejecuta git fetch y git merge [la rama ascendente]. Por ejemplo:

$ git fetch
From https://github.com/chaconinc/DbConnector
c3f01dc..d0354fc  master     -> origin/master
$ git merge origin/master
Updating c3f01dc..d0354fc
Fast-forward
scripts/connect.sh | 1 +
src/db.c           | 1 +
2 files changed, 2 insertions(+)

Al ejecutar git diff, puedes ver los cambios y confirmarlos si es necesario. Configura diff.submodule como "log" para mostrar cambios de submódulos automáticamente.

git config --global diff.submodule log
git diff

Una forma más sencilla es ejecutar git submodule update --remote para actualizar automáticamente los submódulos.

git submodule update --remote

Incorporando Cambios Ascendentes desde el Control Remoto del Proyecto Principal

Después de un git pull, ejecuta git submodule update --init --recursive para actualizar los submódulos.

git pull
git submodule update --init --recursive

Trabajando con un Submódulo

Al ejecutar git submodule update, los archivos del submódulo se actualizan, pero el repositorio queda en un estado de "HEAD separado". Para facilitar el acceso y las modificaciones:

Configuración Inicial

  1. Accede al Submódulo:
cd NombreDelSubmodulo/
  1. Selecciona una Rama:
git checkout stable

Actualización del Submódulo

  1. Recupera Cambios Remotos:
cd ..
git submodule update --remote --merge

Ahora, cualquier cambio local en el submódulo y los cambios remotos se fusionarán automáticamente en tu rama local.

  1. Para realizar tus cambios, vuelve al directorio del submódulo y haz tus modificaciones. Después, realiza un commit.

  2. Publica los cambios del submódulo:

git submodule update --remote NombreDelSubmodulo

Esto actualiza y fusiona automáticamente los cambios del submódulo en tu rama local.