Comenzaremos un nuevo proyecto este mes. El proyecto durará 1 año y el despliegue de producción solo ocurrirá hacia el final del proyecto.
Haremos un desarrollo iterativo (1 mes por iteración), por lo que esto significará que eliminaremos las características en el entorno de prueba al final de cada iteración para las pruebas de control de calidad.
Nuestra estrategia de ramificación es:
- Troncal: todo el desarrollo se realizará en la troncal.
- Rama de características: las ramas fuera del tronco se crearán según las necesidades para el desarrollo de características grandes que podrían romperse si se realizan en el tronco
- QA Release Branches: al final de cada iteración, se creará una rama de trunk. Esta rama (que incluye un número de versión) se lanzará al entorno de prueba. Todos los errores críticos y de bloqueo encontrados en esta versión se corregirán en esta rama y las correcciones tendrán que fusionarse con el tronco. Los errores no críticos / triviales no se abordarán en la rama de lanzamiento de QA y solo se corregirán en el tronco ya que la rama de lanzamiento de QA se desechará después del final de la siguiente iteración donde se creará una nueva rama de lanzamiento fuera del tronco.
- Rama de producción: esta será la última rama de lanzamiento de control de calidad al final del proyecto. Esto se etiquetará y todas las correcciones de errores de producción estarán en esta rama y se fusionarán con el tronco.
¿Es esta una estrategia de ramificación correcta? ¿Hay algo más que no hayamos considerado?
Estamos usando SVN.
