Estrategia de ramificación de desarrollo paralelo

Me enfrento al desafío de tener que mantener dos versiones del mismo producto durante un período de time desconocido. Creo que se me ocurrió una solución factible, pero quise rebotarla en la comunidad para un "control de cordura". Actualmente, cuando se solicita una nueva característica, se corta una twig de la línea troncal, el desarrollo se completa en esa twig y esa twig se fusiona nuevamente con la línea troncal. Esta ha sido la estrategia típica para la mayoría de los lugares donde he trabajado.

Recientemente, se cortó una nueva sucursal para una revisión general de características que dará lugar a cambios no compatibles con el tronco. Todos nuestros usuarios eventualmente serán forzados a esta nueva versión pero, por un período de time, ambas versiones existirán en la naturaleza. Antes de llegar a profundidad, aquí hay un diagtwig de lo que es mi plan actual para ramificar

estrategia de ramificación

Versión: Actual es lo que se libera actualmente. Como Versión: Nuevo está desarrollado, las correcciones de errores continuarán siendo enviadas para la Versión: Actual que (con toda probabilidad) deberá fusionarse con la Versión: Nuevo Obviamente, cualquier nueva característica / corrección de errores para la Versión: Nuevo solo deberá fusionarse abajo en la Versión: Nuevo. Una vez Version: Current ya no está en el campo, Version: New se convertirá en el singular trunk. Si bien creo que esto es factible, creo que puede convertirse rápidamente en una pesadilla de gestión. Mi pregunta es: ¿existe una estrategia de ramificación "mejor" que se podría seguir en mi caso particular, o es esto más o less?

Debe elegir una estrategia de bifurcación que mejor se adapte a su equipo y cómo funcionan. Pero lo que describes es una forma bastante común de hacer las cosas. Añadiría que es posible que desee fusionar las correcciones de errores de la versión actual con más frecuencia que cuando la versión actual no se está utilizando. Si ese período es largo, las twigs podrían alejarse lo suficiente como para causar dolores de cabeza.

Aquí hay una buena publicación sobre patrones de ramificación comunes