Aunque la instalación de un servidor Subversion no es una tarea complicada en un sistema Linux, a menudo olvidamos los pasos que debemos seguir cada vez que creamos un nuevo repositorio. Esto es debido a que no es una tarea muy habitual. Si bien existen entornos de desarrollo integrados que a través de un escritorio permite la creación automática de repositorios (por ejemplo, el ofrecido por Clinker), cuando somos nosotros los que creamos el repositorio desde un terminal, hemos de seguir los siguientes pasos.
Partimos de que hemos ubicado nuestro repositorio de subversion (svn-repos) en /var. Es decir:
/var/svn-repos
Primero, creamos el contenedor para nuestro nuevo proyecto, al que llamaremos project_1
cd /var/svn-repos/ svnadmin create project_1
Como queremos acceder al repositorio a través de HTTP, hay que permitir que Apache pueda acceder a este nuevo repositorio. Lo más fácil es asignar al directorio recién creado el usuario y permisos que corresponde a Apache:
chown -R www-data:subversion /var/svn-repos/proyecto chmod -R g+ws /var/svn-repos/proyecto
A continuación debemos habilitar y configurar WebDAV y SVN. Para ello, añadimos el siguiente código al archivo dav_svn.conf que ya existe en el directorio /etc/apache2/mods-available/:
sudo nano /etc/apache2/mods-available/dav_svn.conf <Location /svn/project_1> DAV svn SVNPath /var/svn-repos/project_1 Options FollowSymLinks order allow,deny allow from all AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </Location>
Como vemos, acabamos de indicar que accederemos a nuestro proyecto a través del path /svn/project_1, con lo que la URL de acceso quedará como http://host/svn/project_1, donde host corresponde a la dirección IP o nombre.dominio de nuestro servidor. También hemos establecido la configuración de seguridad dejando que la misma descanse en el archivo de usuarios dav_svn.passwd (podríamos haber elegido otro nombre). Es decir, cada acceso al repositorio va a requerir de un usuario válido definido en este archivo. Con el siguiente comando insertaremos a un usuario (y su contraseña) en el archivo, el que se creará de no existir.
cd /etc/apache2/ htpasswd -cm dav_svn.passwd usuario
Y ya está. Sólamente hay que recodar hacer esto por cada proyecto que creemos.