lunes, 13 de enero de 2014

Subversion (SVN): Conceptos básicos, ramas y mezclas


Subversion


Se trata de un sistema de control de versiones que también se conoce como como svn. Una característica importante de Subversion es que todo el repositorio tiene un único número de versión que identifica el estado común de todos los archivos del repositorio en un instante determinado. Subversion también permite acceder al repositorio en remoto, lo que le permite ser utilizado por desarrolladores que se encuentran en distintas localizaciones. Esta posibilidad fomenta la colaboración. Permite progresar más rápidamente sin un único programa por el cual deban pasar todas las modificaciones. Además se encuentra bajo el control de versiones, por lo que la calidad del producto no se ve afectada. Además es un programa de código libre. 


TortoiseSVN.


Es un cliente de subversion, también es software libre.  A continuación unos conceptos básicos de utilización de Svn con su cliente Tortoise. 


 Añadir un archivo a Subversion


Si tenemos un archivo para añadir al repositorio de svn, una vez instalado tortoise en nuestro equipo al dar al botón de recho del ratón sobre el explorador de windows aparecerá la opción tortoise desde la cual posicionados sobre el sobre el archivo a agregar pulsamos Add.

 
Añadir un archivo a subversion



 Hacemos el commit para que lo coja svn.


Añadir un archivo a svn


Añadir un archivo con tortoise


Pulsamos Ok y el archivo aparecerá con el característico icono verde de svn.




Crear un directorio en el repositorio.

Primero abrimos el repo-browser para crear el nuevo directorio


crear un directorio en el repositorio svn


Generamos un nuevo directorio en el repositorio 


crear un directorio en el repositorio subversion

crear un directorio en el repositorio con tortoise



 Crear una rama



¿Qué es una rama? 
– Es una copia lógica de un directorio en otra ubicación del repositorio 
 ¿De qué se hacen ramas? 
– Del trunk (completo o parcial) – De otra rama (completa o parcial) 
 ¿Para qué se usan? 
– Para aislar los cambios que se llevan en cada línea de desarrollo y que no afecten a la versión estable 

Hecho esto, vamos al directorio del tronco que queremos replicar y hacemos Branch/Tag:


Crear una rama svn

Se puede hacer: 
– Revisión concreta 
– HEAD revision 
– Working copy


Crear una rama subversion


Crear una rama con tortoise

Y pulsamos OK con lo que el tronco se habrá replicado en una rama. 

- Cuando se crea una rama, si no se marca ‘Switch working copy to new branch/tag’, no afecta a la copia local (working copy) 

- Si no se marca, para trabajar con la rama, habría que hacer un checkout de la rama 

Si se marca, la copia local queda enlazada con la nueva rama


Crear una rama subversion con tortoise


La estructura de directorios recomendada para trabajar con svn quedaría así 


estructura de directorios svn


Con ello el desarrollo del proyecto quedaría del siguiente modo: 


modo de trabajo subversion



Para volver atrás un cambio en subversión



Basta con posicionarse sobre el archivo a deshacer el cambio y pulsar revert. 


volver atrás un cambio en subversion


MEZCLAS : Unir una rama al tronco



Una mezcla es el resultado de integrar los cambios de una o varias revisiones de una rama sobre otra rama o el trunk 

Las mezclas pueden hacerse en ambos sentidos 

 Se llevan a cabo sobre la copia local en la que se harán los cambios 
TortoiseSVN > Merge… 

 Hacemos update del tronco y commit de la rama. Sobre el tronco hacemos… 


mezclas, unir una rama al tronco en subversion


Tenemos las siguientes opciones:

1. Mezcla de rango de revisiones 
2. Reintegrar una rama 
3. Mezcla de dos árboles diferentes 


mezclas, unir una rama al tronco en svn


Comprobamos los directorios de origen y destino 


mezclas, unir una rama al tronco con tortoise


 Si hay que cambiar el directorio pulsamosSubversion (SVN): Concéptos básicos, ramas y mezclas
 y sale 

mezclas, unir una rama subversion al tronco con tortoise



Elegimos el directorio correcto y testeamos por si hubiera algún conflicto. Y si está todo correcto hacemos el merge definitivo. 


merge. unir una rama subversion al tronco con tortoise

Y probamos con Test merge si todo ha ido bien 


merge. unir una rama svn al tronco con tortoise



Si finalmente todo ha ido bien hacemos el Commit del tronco preferiblemente de uno en uno para no hacer commit de los .vbp y .vbw 


hacer commit en subversion

En definitiva la opción Merge: Sirve para integrar entre líneas de desarrollo los cambios realizados en un grupo de revisiones 


merge en subversion


 Integra los cambios asociados a las revisiones realizadas en una rama a la raíz (trunk o rama) desde la que se creó la rama


integrar cambios en subversion


Integra los cambios de revisiones de un árbol que no tiene relación ancestral con otros Es el menos usado


integrar cambios en revisiones svn

El modo de trabajo con mezclas quedaría del siguiente modo 

modo de trabajo con mezclas, svn 

Buenas prácticas con mezclas


Hacer sólo las ramas necesarias 
Reintegrar las ramas tan pronto como se pueda  
No mantener las ramas desincronizadas durante mucho tiempo (merge range of revision) Hacer update antes de cada mezcla  Hacer mezclas sólo si se está seguro Borrar las ramas que ya estén reintegradas


No hay comentarios:

Publicar un comentario