Gestión de liberación de código | SVN

Estoy intentando comprender cómo puedo gestionar mis lanzamientos de 3 pistas de desarrollo diferentes sin entrar en el problema de fusión de código y ninguna pérdida de funcionalidad.

Ya tengo un lanzamiento de producción y voy a tener 2 release2 desarrollo paralelo para el próximo release2 y release3 , sin embargo, tengo las siguientes limitaciones

  1. Tanto la release2 como la release3 se release3 desde la primera versión.
  2. Release2 solo contendrá solo algunas características y tendrá un período de desarrollo muy corto.
  3. Release3 includeá algunas de las nuevas funcionalidades junto con las características desarrolladas en release2 .

No estoy muy seguro de cómo puedo administrar mejor estos ciclos de desarrollo en SVN, así que cuando release2 en release2 con release2 , será fácil para nosotros fusionar código en release3 , también publicar release2 para release2 , también debemos asegurarnos cualquier corrección de errores ocurrirá tanto en la producción como en la release3 .

Estoy buscando sugerencias para saber cuál es la mejor manera de manejarlo de una manera más limpia sin poner mucho esfuerzo en la administración del código. Como información adicional, estamos utilizando SVN para la administración de código.

Brad Appleton tiene un análisis muy completo de varios patrones de ramificación. Si bien tiene casi 20 años, sigue siendo muy relevante. En mi trabajo, siempre estamos en la misma position a la que se enfrentan, y finalmente elegimos seguir el patrón ' Codeline for Major Release ' (C3.1), que hemos estado utilizando con éxito durante los últimos 12 años.

Específicamente para su caso, sugiero que se bifurquen release2 y release3 desde el mismo punto en el enlace troncal, y se combinan regularmente desde la twig de release2 a la release3. Dichas fusiones deben coordinarse de manera avanzada, en function del calendar, por ejemplo, cada 3 semanas, o según los hitos del proyecto, etc.