En este tutorial vamos a explicar cómo instalar y crear tu propio repositorio Subversion en un Ubuntu Server 8.10 (intrepid). No nos detendremos en una explicación exhaustiva de qué es Subversion (SVN) o un repositorio pues hay mucha información sobre ello en la red (una muestra en wikipedia).
Para instalarnos Subversion en nuestro servidor podemos descargarlo directamente de la página oficial (siendo la 1.5.5 la última versión actual) o bien descargarlo del repositorio de nuestra propia distribución (sudo apt-get install subversion).
A continuación seguiremos con la creación y configuración de nuestro repositorio y para ello seguiremos los siguientes pasos:
- Creación del repositorio: crearemos el sistema de carpetas donde queramos incluir el repositorio, en nuestro caso estará en la ruta /svn/repositorios/miproyecto situado en el raíz y le indicaremos que éste será nuestro repositorio:
mkdir /svn /repositorios/miproyecto
svnadmin create /svn /repositorios/miproyecto
Es aconsejable hacer un repositorio por cada proyecto del que dispongamos ya que si hacemos un único repositorio que englobe varios podría ser dificultoso separarlos físicamente si más adelante quisieras tenerlos en diferentes ubicaciones.
- Permisos a usuarios: si queremos controlar qué usuarios deben tener o no acceso a nuestro repositorio tendremos que indicarlo en los archivos “svnserve.conf” y “passwd” de nuestro repositorio creado y que se encuentran en la carpeta conf.
En nuestro caso ejecutaremos
nano /svn /repositorios/miproyecto/conf/svnserve.conf
y haremos que los usuario anónimos no puedan acceder al contenido del repositorio y que los usuario autenticados tengan permiso tanto de lectura como escritura en el repositorio:
anon-access = none
auth-access = write
password-db = passwd
Con password-db = passwd indicamos que los usuarios autenticados sean los que se encuentren en el fichero de contraseñas passwd, de esta forma ejecutando
nano /svn /repositorios/miproyecto/conf/passwd
y escribiendo en él
usuario22=userveintidos459
hacemos que únicamente el usuario22 con dicha clave tenga acceso al repositorio para leer/escribir código en el repositorio.
- Arrancar el servidor en modo demonio. Ejecutaremos el siguiente comando
svnserve -d -r /svn/repositorios
Con “–d” arrancamos el servidor en modo demonio y con la opción “-r” hacemos que cuando los clientes se intenten conectar con el repositorio no tengan que escribir la dirección completa, es decir, en este caso solo escribirían
svn://midireccionip/miproyecto
en lugar de escribir
svn://midireccionip/svn/repositorios/miproyecto.
Este ejemplo está hecho teniendo en cuenta que el servidor donde se encuentra el repositorio pertenece a la misma red que los equipos que van a acceder a él. Para el caso en el que estén en redes distintas tendríais que aseguraros que el puerto 3690 esté accesible.
Una vez creado el repositorio, para poder empezar a trabajar con él, hay disponible diferentes tipos de clientes Subversion dependiendo del sistema operativo que vayamos a utilizar. Si estamos trabajando con Windows, uno de los más conocidos es TortoiseSVN, el cual es muy fácil de usar y existen muchos tutoriales que explican su uso. Para distribuciones Linux como Intrepid, podemos importar código por comandos haciendo
svn import - -username nombreusuario - -password clave ruta código fuente ruta repositorio
o bien descargar aplicaciones como RapidSVN (disponibles en el repositorio de la propia distribución). Independientemente del sistema, disponemos de herramientas como Eclipse o Intellij con las que podemos hacer también los diferentes accesos.