Subversion: reutilizar branches ya reintegrada sin tener conflictos

Representación de las branches en SubversionReintegrar una branch varias veces puede ser problemático, y se tiene que evitar en la medida de lo posible. Pero en el caso de que una branch se tenga que reutilizar para posteriormente reintegrarla otra vez, hay dos opciones:

  • Si no nos importa el historial de cambios de la branch, se puede crear una nueva. Si se quiere que tenga el mismo nombre, solamente tenemos que borrar la reintegrada previamente antes de crear la nueva.
  • Si queremos mantener el historial, hay que “engañar” a subversion, actualizando con la rama con la revisión de la reintegración, pero solamente a nivel de registro, no de código.

Cuando se reintegra una branch modificada a tu branch de origen, la working copy se ha de situar en la branch de origen, y se procede de la siguiente manera:

svn merge --reintegrate <modified_branch> <source_branch>

Y posteriomente se realiza el COMMIT en la branch de origen, originando una nueva revisión. Esta revisión, a parte de contener los cambios a nivel de archivos, modifica las propiedades de la branch de origen para indicar que contiene todos los cambios de la branch modificada.

Si se desea reintegrar nuevamente esa branch modificada, hay que traer esa revisión a la branch modificada, pero solamente el cambio de propiedades de la branch de origen. Para ello, el merge es el siguiente:

svn merge --record-only -c R <source_branch> <modified_branch>

Y posteriormente hacer el commit de estos cambios.

En principio con Subversion 1.6, este problema esta solucionado.

Fuente – Subversion Documentation
Fuente – StackOverflow

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>