Node:La Aproximación del Pez Volador -- Una forma más simple de hacerlo, Next:, Previous:La Aproximación de la Cola de Milano -- Fusionar dentro y fuera de la rama principal, Up:Salir del limbo (Cómo trabajar con derivaciones y sobrevivir)



La Aproximación del Pez Volador - Una forma más simple de hacerlo

Hay una variante más simple, aunque un poco más limitada, que la anterior. En ella, los desarrolladores de la derivación se congelan o paran mientras el tronco se fusiona, y después los desarrolladores del tronco crean una nueva derivación, que reemplaza la anterior. Los desarrolladores de la antigua derivación cambian a esa nueva derivación y siguen trabajando. Este ciclo sigue hasta uqe no hay más necesidad de desarrollo en la derivación. Funciona así (supondremos que jrandom@floss está en el tronco y qsmith@paste esté en la derivación como hasta ahora):

floss$ cvs tag -b BRANCH-1
paste$ cvs checkout -r BRANCH-1 myproj

Tronco y derivación empiezan a funcionar y pasado un tiempo los desarrolladores deciden que tienen que fusionar la derivación en el tronco:

paste$ cvs ci -m "committing all uncommitted changes"
floss$ cvs update -j BRANCH-1

Todos los cambios de la rama se fusionan y los desarrolladores paran su trabajo mientras que los desarrolladores del tronco resuelven cualquier conflicto, entregan, etiquetan y crean una nueva derivación:

floss$ cvs ci -m "merged from BRANCH-1"
floss$ cvs tag merged-from-BRANCH-1
floss$ cvs tag -b BRANCH-2

Ahora los desarrolladores de la derivación cambian sus copias de trabajo a la nueva derivación sabiendo que no perderán ningún cambio no entregado ya que estaban actualizados cuando la fusión ocurrió ya la nueva derivación viene de un tronco que incorpora los cambios de la nueva derivación:

paste$ cvs update -r BRANCH-2

Y el ciclo continúa del mismo modo indefinidamente; sustituya BRANCH-2 por BRANCH-1 y BRANCH-3 por BRANCH-2.

Llamo a esta técnica Pez Volador porque la derivación está constantemente emergiendo del tronco, viajando una corta distancia y uniéndose a él después. Las ventajas de esta aproximación son que es simple (el tronco siempre fusiona todos los cambios para una derivación dada) y los desarrolladores no tinene que resolver conflictos (cada vez trabajan con una nueva y limpia derivación). Las desventajas son que la gente de la derivación debe esperar sin poder hacer nada hasta que se haya fusionado el tronco (que puede durar un tiempo arbitrario dependiendo de cómo haya que resolver los conflictos). Otra pequeña desventaja es habrá muchas derivaciones sin usar en vez de etiquetas no_derivación. Si no le importa tener millones de pequeñas y obsoletas derivaciones y puede anticipar claramente fusiones libres de problemas el Pez Volador pueda ser el modo más fácil en términos mentales.