Instalación y configuración de subversion en Windows

Así se instalaba y configuraba Collbanet Subversion Edge en 2011.

¿Qué es Subversion?

Antes de saber que es Subversion debemos tener en cuenta algunos conceptos previos cómo el de versión, control de versiones y sistemas de control de revisiones.

Una versión, revisión o edición de un producto, es el estado en el que se encuentra dicho producto en un momento dado de su desarrollo o modificación. Se llama control de versiones a la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo. Los sistemas de control de versiones facilitan la administración de las distintas versiones de cada producto desarrollado, así como las posibles especializaciones realizadas.

Un Sistema de Control de Revisiones (Revision Control System - 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.

Resumiendo, Subversion no es más que un sistema de control de versiones diseñado específicamente para reemplazar al popular CVS.

Instalación de Subversion en Windows

Existen multitud de instaladores de subversion, algunos más complicados que otros. Tenemos que tener en cuenta que un sistema de control de versiones requiere de 3 elementos fundamentales para funcionar: el propio sistema de control de revisiones, un servidor web para poder servir los archivos y un visor para gestionar los repositorios.

En este manual utilizaremos el más completo y sencillo de instalar a mi modo de ver, este software es el Collabnet Subversion Edge e instala en un solo clic subversión, Apache y ViewVC.

Aunque esta es la parte que nos va a servir los archivos (la parte servidor) por tanto necesitamos algún programa en nuestros ordenadores para gestionar estos repositorios de manera sencilla, el programa elegido es el Tortoise SVN.

Ambas instalaciones son las típicas de siguiente siguiente, no es necesario configurar nada específico, lo único a tener en cuenta es del lado del servidor que el puerto 80 esté libre para el apache, en caso de no estarlo debemos modificar este puerto una vez instalado el Collabnet Subversion Edge en su menú de Administración:

Nota: la primera vez que instalamos subversion este no se inicia por defecto debemos iniciarlo manualmente en la pantalla de status (ver imagen siguiente) si nos da error de puerto debemos cambiarlo en la imagen anterior y además debemos marcar el último check de esta página para iniciarlo siempre automáticamente.


Algunas notas adicionales: El Tortoise SVN se integra con el explorador de Windows por lo que es más que probable que necesitemos reiniciar el equipo. También es importante recordar la contraseña del usuario admin (en el proceso de instalación nos pide crear una) en el Collabnet Subversion Edge aunque luego la podamos cambiar.

Creación de repositorios

Aclaremos algunos conceptos primero, un repositorio se crea en el servidor y los usuarios al conectarse a este se descargan o suben archivos al mismos, un repositorio no está en local, en local sólo tenemos una copia (puede que no sea actualizada) del repositorio almacenado en el servidor.
Una vez aclarado esto crearemos un repositorio en nuestro servidor:


El único paso que tenemos que hacer es darle un nombre, más nada. Sencillo ¿verdad? Para ver nuestro repositorio nos desplazamos hasta el listado:


De este listado con lo que tenemos que quedarnos es con la url del repositorio (recuadro rojo) para poder acceder remotamente al mismo desde nuestro ordenador.

Creación de usuarios en Subversion

Aunque podemos acceder remotamente con el usuario admin a cualquier repositorio es muy recomendable crear usuarios remotos para estos (también para cada repositorio se puede denegar el acceso a unos usuarios y permitirlo a otros). Debemos tener en cuenta que los usuarios creados en la siguiente pantalla tienen acceso a todos los repositorios por defecto, para editar estos accesos en cada uno debemos ir a cada repositorio y modificar las reglas de acceso.

Para crear un usuario solo debemos rellenar los datos y elegir el rol del mismo, por defecto siempre será un usuario normal:


Recordad que si no editamos las reglas de acceso de nuestros repositorios todos los usuarios que creemos aquí van a tener acceso a los mismos.

Bien, hasta ahora todo es bastante sencillo, y la siguiente parte también, aunque tenemos que hacer algunos pequeños trucos para trabajar con proyectos que ya existen.

Actualizar un repositorio para un proyecto con archivos ya creados

Este pequeño truco se debe a una limitación por parte de Subversion que impide que vinculemos un directorio local a un repositorio si este directorio no está vacío. La pregunta sería ¿entonces como creo un repositorio para archivos que ya tengo? ¿Cómo los incluyo en este repositorio nuevo?

El truco es muy sencillo y os describo los pasos a seguir:
  • Primero debemos subir los archivos al repositorio nuevo que hemos creado
  • Luego debemos crear una carpeta local al mismo nivel que la que contiene los archivos subidos.
  • Después vinculamos esta carpeta nueva con el repositorio (con ello tendría una copia exacta de todos los archivos subidos)
  • Finalmente borramos la carpeta original y renombramos la nueva con el nombre original.

De esta forma ya tenemos un directorio local vinculado a un repositorio con los archivos antiguos.
Importante: esto no es necesario para proyectos nuevos en los cuales no hayamos creado ningún archivo aún. Veamos estos pasos uno a uno.

Subir archivos antiguos a un repositorio nuevo

Para importar archivos a nuestro repositorio lo podemos hacer de una manera muy simple con Tortoise SVN, como os dije anteriormente este programa se integra perfectamente con el explorador de Windows por lo que el único paso necesario es hacer clic derecho sobre la carpeta, elegir Tortoise SVN y luego importar:


En la siguiente ventana introducimos la url del repositorio (sin usuario) y en caso de que no la tengamos cacheada en nuestro ordenador nos pedirá el usuario y la clave al pulsar Aceptar, si todo está correcto se iniciará el proceso y tendremos ya subidos los archivos a nuestro repositorio.


Nota: Este paso solo sube los archivos (los importa) a nuestro repositorio pero no vincula esta carpeta con el mismo que es lo que necesitamos para subir las modificaciones o descargarnos revisiones antiguas.

Vincular una carpeta local a un repositorio

Este paso si deben seguirlo todos los que quieran vincular carpetas locales a un repositorio y recordar que la carpeta local debe estar vacía y con permisos de escritura.

Igualmente que en el paso anterior para obtener el código de un repositorio y vincularlo a nuestra carpeta local lo único que debemos hacer es clic derecho y pulsar la opción Obtener:


En el dialogo siguiente seleccionamos el repositorio (nos pedirá igualmente el usuario y la contraseña al pulsar aceptar si el mismo no está cacheado) y podemos descargarnos cualquiera de las revisiones existentes, para la primera vez es aconsejable descargarse la HEAD (la última):


De esta forma ya tenemos vinculado nuestro directorio con un repositorio, si todo ha ido bien aparte de descargarnos los archivos al pulsar clic derecho en la carpeta veremos cómo cambian las opciones de la carpeta:


Estas dos opciones son las básicas de Subversion, SVN Actualizar nos permite obtener los archivos del servidor mientras que SVN Confirmar nos permite importar al repositorio nuestras modificaciones que pueden estar acompañadas o no por algún mensaje identificativo de la operación o los cambios realizados.


Nota adicional: Podemos acceder y confirmar cambios en repositorios de unidades de red siempre y cuando estos se hayan creado desde la máquina real, o sea si tú tienes en un servidor un directorio vinculado a un repositorio y accedes a él desde tú máquina puedes confirmar los cambios desde allí sin necesidad de hacerlo desde la propia máquina.

Comentarios