Qué estrategia de ramificación es adecuada para nuestro equipo

Ahora, estamos usando SVN como control de versiones, recibimos tickets del cliente (incluyen nuevas funciones y corrección de errores), todos los desarrolladores asignan el código modificado a la trunk y despliegan todos los cambios en el entorno de control de calidad para la testing. Sin embargo, no todas las inputs se envían a producción, algunas funciones necesitan más aprobación del cliente o necesitan más testings antes del lanzamiento, por lo que tenemos que elegir algo de confirmación desde el troncal y el puerto a una twig de release . El código fuente en la twig de release será producción.

Cada vez que liberamos tenemos que elegir el compromiso desde el tronco y, por supuesto, tendremos tantos conflictos (porque faltan algunos compromisos si no son prioridad para el lanzamiento), tenemos que resolver el conflicto manualmente.

Ahora, decidimos mover la base de código a Git y necesitamos introducir un nuevo flujo de trabajo para que todo funcione sin problemas, incluido el time de liberación, lo less posible, el conflicto entre la twig de publicación y la twig de desarrollo.

Alguien tiene experiencia en esta área, por favor dame alguna sugerencia sobre qué flujo de trabajo se debe aplicar. Los siguientes son algunos requisitos obligatorios:

  • Toda la nueva característica o corrección de errores debería estar disponible para implementarse en el entorno de control de calidad para la testing, lo que significa que deberíamos tener una twig que contenga todos los cambios
  • En el momento del lanzamiento, no se lanzan todas las historias, solo algunas confirmaciones son recogidas y retransmitidas

Es posible que le interese el model de ramificación GitFlow , que admite twigs de versión, twigs de Hotfix y twigs de Características.

Esta publicación describe la propuesta y proporciona explicaciones detalladas sobre cómo aprovechar git para lograr esto.