Introducción.
Debido a la necesidad de repartir
el trabajo y que varias personas participan en la generación de los archivos o
entregables, puede llegar un momento en el cual no se tenga el conocimiento de
qué versión del archivo o ducumento sea la más actualizada.
Para evitar esto, se puede
implementar un sistema de control de versiones. Existen varios de estos
sistemas en el mercado, por ejemplo:
- CVS
- Subversion
- Git
- Mercurial
- Bazzar
- Plastic SCM
Esta entrada se centra en
describir qué es Subversion, conceptos básicos y arquitectura.
¿Qué es Subversion?
Subversion o también conocido
como SVN, es un sistema de que administra archivos, directorios y los cambios
realizados a estos. Esto permite recuperar versiones previas de un archivo o un
directorio y examinar los cambios que han sufrido.
Subversion puede trabajar en un
entorno de red, lo que permite ser utilizado por varias personas y diferentes
equipos.
Conceptos básicos.
Control de versiones.
Un sistema de control de
versiones (o sistema de control de revisiones o sistema de control de la
configuración) es un sistema que da seguimiento a las versiones (o revisiones)
de archivos y directorios. Lo que hace un sistema de control de versiones útil
es el hecho de poder explorar los cambios que resultaron en cada versión y
quién los realizo.
El repositorio.
Es la base del sistema de control
de versiones, es la central donde se almacena toda la información y cualquier
número de clientes se puede conectar a este.
La copia de trabajo.
La copia de trabajo es
literalmente una copia local de un usuario en particular, y las tareas de
comunicar los cambios realizados a los archivos recaen en el cliente de SVN.
Las revisiones.
Cuando el cliente de SVN comunica
los cambios realizados cualquier número de archivos y directorios se gestiona
como una transacción atómica ¿Qué significa esto? Que cuando se envían los
cambios al repositorio deben de ser todos o ninguno de ellos.
Fig. Representación
de las revisiones.
Descripción del ciclo de trabajo.
El ciclo de trabajo común con SVN se podría representar de
la siguiente manera:
- Actualizar la copia de trabajo (update).
- Realizar tus cambios. Ya sea a archivos existentes en el repositorio o agregar, eliminar o mover otros archivos.
- Revisar los cambios.
- Corregir errores.
- Resolver cualquier conflicto.
- Enviar cambios (commit).
Arquitectura de SVN.
Un sistema de control de
versiones encaja en una arquitectura cliente servidor similar a un servidor de
archivos (FTP), pero a diferencia del servidor de archivos cuenta con sus peculiaridades ya mencionadas.
A continuación se muestra detalle los
elementos que contiene SVN.
Servidor: El servidor se puede descargar sin costo desde http://subversion.tigris.org/ donde
también se puede encontrar recursos e información sobre su uso.
Cliente: Existen varios clientes para gestionar la copia de trabajo.
Para Windows se encuentra TortoiseSVN (http://tortoisesvn.tigris.org/
) el cual es un cliente que se incorpora al explorador y es fácil de usar.
Fig. Arquitectura de
SVN. fuente: SVN-book.
Conclusiones.
El objetivo principal de SVN es gestionar las revisiones que
van surgiendo, y compartir estas a través de la red con otros compañeros de
trabajo, para contar con la versión más actual. Se puede encontrar información muuuuy completa en el SVN-book en línea: http://svnbook.red-bean.com/