Subversion - Aplicar cambios realizados en un branch sobre la rama trunk del proyecto - Más allá de lo que ves

jueves, 27 de agosto de 2009

Subversion - Aplicar cambios realizados en un branch sobre la rama trunk del proyecto

Recientemente nos topamos en el trabajo con la necesidad de crear un branch en Subversion para un proyecto. Los cambios que se contemplaba para el proyecto eran considerables y no queríamos tocar la rama del trunk para evitar problemas en actualizaciones parciales futuras del trunk.

El problema nos vino cuando intentamos pasar los cambios del branch al trunk. Obteníamos un error y era imposible realizar la tarea. Por lo que pudimos indagar “googleando” no era posible usando la opción que ofrece TortoiseSVN para tal fin, Reintegrate a branch.

Encontramos un artículo (http://blogs.open.collab.net/svn/2008/07/subverion-merg.html) en el que se explica nuestra situación y se le da solución. La usamos y funcionó sin ningún problema. Gracias a Mark (autor de la entrada que os pongo anteriormente) pudimos solventar nuestro problema.

A continuación os describo de forma breve como proceder esperando que os pueda resultar útil pues cuando estuvimos buscando información relacionada no encontramos nada similar en español.

Partimos de un branch en su version 150 y un trunk que estan sincronizados desde la version 100.

IMPORTANTE !

Lo primero que tenemos que hacer es tener en la copia de trabajo una copia del trunk.

Haciendo botón derecho en el explorador de carpetas sobre la carpeta que tiene nuestra copia de trabajo seleccionamos: TortoiseSVN / Merge.



En la pantalla Merge Type seleccionamos la opción Merge two different trees y hacemos click en Next.


En la pantalla Tree Merge debemos realizar la siguiente configuración:

En el From la ruta al trunk en subversion indicando la última versión (campo Revision) de este que se volcó al branch, i.e. la última versión desde la cual se sincronizaron los cambios del trunk al branch, en el caso de no haber hecho esto sería desde la versión que se creo el branch. Para nuestro caso esta versión sería la 100.

En el campo To deberemos indicar la ruta al branch dejando como version aquella a la que queramos integrar en el trunk, en nuestro caso la 150, normalmente será le versión HEAD si queremos reintegrar todos los cambios del branch al trunk.

En el campo Working copy dejamos nuestra carpeta de trabajo por defecto para que en ella se guarden los cambios obtenidos de mezclar el branch y el trunk.


Hacemos click en Next.

Por último en la pantalla Merge Options dejamos los valores por defecto y pulsamos en Merge.



Nos aparecerá una pantalla de proceso en la que cuando Tortoise acabe al tarea nos reportará un log de los cambios realizados, ficheros actualizados, añadidos, eliminados...

Voilà !!!!!! ya tenemos mezclado el branch y el código del trunk en nuestro directorio de trabajo ahora tan solo tendremos que hacer un commit de los cambios resultantes a la versión trunk en SVN.

2 comentarios: