Trabajando con Subversion

Este es un articulo que escribí para el Programmers Team, dejo una parte y el link debajo.


Qué es subversión?

Según Wikipedia Subversión es un software de sistema de control de versiones.
Un sistema de control de versiones (RCS) es una implementación de software para el control de versiones que automatiza las tareas de guardar, recuperar, registrar, identificar y mezclar versiones de archivos.
Es decir, con SVN podemos llevar un registro de quien efectuó que cambio a cual archivo y cuando lo efectuó. En definitiva es una herramienta ideal para el trabajo en equipos de desarrollo.

Porqué usar subversión?

Como he dicho, su principal ventaja es que nos proporciona un control absoluto de los cambios que el software ha sufrido, quien los ha realizado y cuando. Aparte de estas características también podemos acceder a cualquier revisión que necesitemos con unos simples clics.
Por ejemplo si desarrollamos un software y descubrimos que a partir de la versión 23 hay un bug que nos obliga a replantearnos completamente la estructura, en dicho caso podemos volver a la versión 23 y seguir desarrollando a partir de esta.

Qué necesito para usar subversión?

Para utilizar repositorios SVN necesitaremos un host:
  • Google code
  • Source Forge
Hay muchos más, pero estos son los que a mí me han gustado.
Un cliente de subversión, a mi parecer el mejor es TortoiseSVN

Estructura de nuestro Repositorio SVN

La estructura de un SVN es completamente libre, pero se suele seguir este modelo:
Repositorio SVN (/):
  • Trunk: El tronco es la carpeta donde se ejecutan todas o casi todas las modificaciones del software, se podría considerar la carpeta de desarrollo.
  • Tags: La etiqueta se utiliza para almacenar una versión estable o con un objetivo importante realizado.
  • Branches: Las ramas se utilizan cuando queremos implementar una característica al proyecto pero no queremos hacerlo en el Trunk dada su magnitud.

Trabajar con nuestro Repositorio

Una vez creado nuestro repositorio e instalado nuestro cliente vamos a aprender a crear, configurar y trabajar con nuestro repositorio.

Crear un repositorio

Para crear el repositorio creamos una carpeta donde queremos tenerlo, en mi caso en mi localhost.
Clicamos el botón derecho y elegimos la opción SVN Checkout
se ve como hacemos un SVN checkout


En la ventana que se nos abrirá ponemos la url de nuestro host SVN agregando /trunk, ya que tomaremos y guardaremos los datos en la carpeta de desarrollo.
Imagen donde configuramos el repositorio

Recibir y enviar archivos

El comando para recibir los archivos se llama “SVN Update” así que en nuestra carpeta hacemos clic derecho y elegimos dicha opción.
Y se nos abrirá un cuadro de texto dándonos un reporte de los archivos que se modificaron, agregaron o borraron y la versión que disponemos.
Imagen donde se ve el update realizado
En mi caso no se habían ejecutado por lo que no hay archivos y solo me indica la versión actual.
Para enviar los archivos usamos la opción “SVN Commit”, así que ejecutamos dicha acción.
La ventana que se nos abrirá contiene 2 secciones. En la primera podemos agregar un mensaje a la nueva versión del repositorio, normalmente se escribe un texto explicando los cambios, o podemos agregar un mensaje anterior con el botón “Recent Message”.
En la segunda sección tenemos una lista con todos los archivos, si no recuerdo mal dispone de 3 status: