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