Ejemplo real de uso de Subversion. Parte II, branching and merging

Ahora, en este Curso práctico de Subversion, nos vamos a poner en el lugar de Alicia y Roberto, los estudiantes de una asignatura de programación que deben superar su práctica en equipo.

Recuerda que el profesor les ha dejado preparado este repositorio SVN que contiene el código base de la aplicación.

Llegados aquí, vamos a ver una cosa nueva en el manejo de SVN: la creación de ramas (branching) y la incorporación posterior de dichas ramas a la línea de desarrollo principal (merging). Con el branching y el merging en nuestra metodología de trabajo ya podemos definir un flujo real (Subversion workflow).

Desarrollando nueva funcionalidad

Como si se tratara de un algoritmo, Alicia y Roberto deben seguir este flujo cuando vayan a desarrollar una nueva funcionalidad, cada uno por su parte, para no interferir entre sí:

Asegurarse de que la rama trunk está actualizada:

svn update

Comprobar la revisión del trunk:

svn info

Crear una rama nueva a partir del trunk:

svn copy https://programarivm.svn.cloudforge.com/practica/trunk https://programarivm.svn.cloudforge.com/practica/branches/ticket-09 -m "Branching..."

Saltar a la nueva rama recién creada:

svn switch https://programarivm.svn.cloudforge.com/practica/branches/ticket-09

Ir desarrollando la nueva funcionalidad en la rama recién creada.

Subiendo los cambios al repositorio

Pasado un tiempo, cuando Alicia o Roberto haya terminado su trabajo, deberá seguir este otro flujo para subir sus cambios al repositorio central:

Asegurarse de que su rama está actualizada:

svn update

En su rama, hacer un sync merge (merge de sincronización) con el trunk.

svn merge https://programarivm.svn.cloudforge.com/practica/trunk

svn commit -m "Sync merge"

Ten en cuenta que normalmente mientras uno desarrolla una rama, el resto de componentes del equipo va incorporando sus cambios al trunk.

Saltar al trunk:

svn switch https://programarivm.svn.cloudforge.com/practica/trunk

En el trunk, reintegrar su rama:

svn merge --reintegrate https://programarivm.svn.cloudforge.com/practica/branches/ticket-09

svn commit -m "Reintegrate branch into trunk"