Вы находитесь на странице: 1из 13

viernes, 25 de septiembre de 2009

Manejo de ramas en Subversion desde Eclipse


En este artculo vamos a ver cmo trabajar desde Eclipse con las ramas de desarrollo de un
proyecto gestionado en Subversion.

Lo primero que vamos a hacer es crear una rama del proyecto, en la cual podramos desarrollar
una nueva caracterstica del proyecto o corregir un error. Para crear esta rama hacemos clic sobre
el proyecto con el botn derecho del ratn y vamos aTeam -> Branch/Tag:

Para Subversion es lo mismo una rama (branch) que una etiqueta (tag). Una estiqueta es una
rama sobre la que no se incluyen cambios. A continuacin seleccionamos el directorio remoto
donde se almacenar esta rama. Por convencion, todas las ramas se guardan bajo el directorio
branches del repositorio:

1
Seleccionamos la revisin sobre la que se va a crear la rama. Como queremos que se haga sobre
la ltima versin del desarrollo, seleccionamos la opcin por defecto (HEAD):

Por ltimo podemos incluir un comentario e indicar que queremos que nuestra copia local del

2
proyecto se cambie a esta rama para poder desarrollar sobre ella:

Tras esto ya se habra creado la rama, con lo que tendremos la siguiente estructura en nuestro
repositorio:

Adems, la copia local sobre la que estamos trabajando desde Eclipse habr pasado a ser la de la
rama. Cualquier modificacin que hagaos y subamos al repositorio no afectar al trunk del
proyecto, sino que solo afectar a dicha rama.

Ahora haremos todas las modificaciones que queramos sobre dicha rama ya las subiremos al
repositorio haciendo Commit. Peridicamente deberemos actualizar dicha rama con los posibles
cambio que haya podido haber en el trunk, para que nuestra copia no se desve del desarrollo
principal. Para esto deberemos hacer merges del trunk sobre nuestra rama, haciendo clic con el
botn derecho del ratn y yendo a Team -> Merge:

3
Seleccionamos el tipo de merge que vamos a realizar. Como lo que queremos hacer es actualizar
una rama con las modificaciones del trunk, elegimos la primera opcin,Merge a range of versions:

4
Si la copia local no est actualizada saldr un mensaje para que hagamos unUpdate. A
continuacin, elegimos desde donde nos queremos actualizar, que, como hemos dicho, ser el
trunk:

5
Hacemos Finish en la siguiente pantalla con las opciones que aparecen por defecto, para que me
avise de los posibles conflictos que aparezcan en el merge y me deje decidir:

6
Si se han hecho cambios en el trunk mientras nosotros trabajabamos en nuestra rama, aparecern
conflictos. La pantalla siguiente nos avisa de que hay un conflicto en una clase que debemos
resolver, para lo que se lanzar un editor grfico:

El editor nos permitir corregir manualmente los confictos en esta clase:

7
Una vez corregidos los conflicto, salvamos el fichero y lo cerramos. Aparece la siguiente pantalla:

8
Indicamos que ya hemos resuelto los conflictos y finalizar el merge:

9
Cuando hayamos finalizado de trabajar con esta rama habr que reintegrarla en el trunk haciendo
un merge de forma similar. En primer lugar cambiamos la copia local por una vista del trunk:

10
11
Despus hacemos un merge con la opcin Reintegrate a branch:

Seleccionamos la rama que queremos reintegrar:

12
El resto del proceso es similar a lo anteriormente visto.

Hemos visto cmo trabajar con una rama en paralelo a la lnea principal del desarrollo
manteniendo la sincrona con sta y cmo reintegrar esta rama con todos sus cambios a la lnea
principal.

13

Вам также может понравиться