es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Flujo de trabajo de Git para manejar múltiples versiones y correcciones de emergencia.

Tenemos un repositorio de Git con una rama principal.
Todos los desarrolladores crean una rama de características desde la principal y luego lo envían de vuelta.
Cuando estamos listos para el lanzamiento, creamos una etiqueta en la rama principal y, después, creamos un lanzamiento desde ahí.
El lanzamiento (un archivo EAR) se implementa en aceptación. Una vez validado, el mismo archivo EAR se implementa en producción.
Si hay algún problema en el entorno de aceptación, creamos otra rama desde la principal y la fusionamos de nuevo con la principal. Luego, seguimos el mismo proceso de lanzamiento.

Esto suele funcionar bien la mayor parte del tiempo, sin embargo, como la rama principal no es siempre la misma que la versión de producción (los desarrolladores fusionan las ramas de características directamente con la principal), llevar a cabo parches de corrección antes de la siguiente versión principal es un desafío. La versión semver de una versión principal es siempre X.Y.Z.0, X.Y.Z+1.0, X.Y.Z+2.O, etc.

En este momento, creamos una rama de parche de la etiqueta (la que está en producción, no la etiqueta más reciente) y la corregimos y lanzamos como una rama separada. Luego, vuelve a aceptación y se valida antes de implementarse en producción. La versión semver para los parches de corrección es X.Y.Z.1, X.Y.Z.2…., etc.

Una vez validado un parche de corrección, implementamos el archivo EAR en producción. Luego, fusionamos el parche de corrección con la rama principal. La fusión tiene que hacerse manualmente ya que la versión del archivo POM del parche de corrección y la principal son diferentes.

¿Hay una mejor manera de manejar esto?

He explorado Gitflow y otros flujos similares, pero realmente no abordan este problema, ya que todos consideran que la rama principal es la única fuente de verdad para la producción, lo cual no es el caso para nosotros.

Podemos crear más ramas si eso nos ayuda. Usamos Gitlab.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás buscando una forma mejor de gestionar hotfixes antes de la próxima versión importante.

    Una posible solución sería utilizar una estructura de ramas de características, con una rama de lanzamiento. Esto implicaría crear una rama de características para cada hotfix, fusionarla con la rama de lanzamiento y, luego, fusionar la rama de lanzamiento en la rama principal. Esto aseguraría que la rama principal esté siempre en sincronía con la versión de producción.

    También podrías utilizar un sistema de control de versiones como Git-flow, que te permitiría crear una rama separada para cada hotfix y luego fusionarla en la rama principal. Esto aseguraría que la rama principal esté siempre actualizada con la versión de producción.

    Por último, podrías utilizar un sistema de control de versiones como Gitlab, que te permitiría crear múltiples ramas para cada hotfix y luego fusionarlas en la rama principal. Esto aseguraría que la rama principal esté siempre en sincronía con la versión de producción.

    Cualquiera que sea la solución que elijas, es importante asegurarte de que la rama principal esté siempre en sincronía con la versión de producción. Esto ayudará a asegurar que los hotfixes sean desplegados correctamente y de forma rápida.

Comments are closed.