Acostumbrarse a utilizar control de versiones puede costar, pero es imprescindible si queremos trabajar en equipo, mantener un histórico o una copia de seguridad de nuestro trabajo.
Para montar un servidor svn en Ubuntu antes debemos desarcargar algunos paquetes (suponemos que ya tienes un servidor apache instalado):
1 | $sudo apt-get install subversion subversion-tools libapache2-svn |
Creamos la carpeta para nuestros ficheros (la del ejemplo es la de defecto) e indicamos que Apache será el propietario de los mismos (los accesos los hará Apache):
1 2 3 4 | $sudo mkdir -p /var/lib/svn $sudo mkdir -p /var/lib/svn/proyecto $sudo svnadmin create /var/lib/svn/proyecto $sudo chown -R www-data.www-data /var/lib/svn |
Ya está todo montado. Ahora sólo falta configurar las rutas y los accesos. Para ello, editamos el fichero /etc/apache2/mods-available/dav_svn.conf con nuestro editor preferido (en mi caso, joe):
1 | $sudo joe /etc/apache2/mods-available/dav_svn.conf |
Hay varias formas de especificar los permisos para acceso al svn. En este caso utilizaremos una autenticación básica:
1 2 3 4 5 6 7 8 | <location /svn> DAV svn SVNParentPath /var/lib/svn AuthType Basic AuthName "Repositorio svn" AuthUserFile /etc/apache2/svn.passwd Require valid-user </location> |
Esta configuración previene el acceso de lectura anónimo y utiliza el fichero /etc/apache2/svn.passwd como repositorio de contraseñas. Sólo falta crear un nuevo usuario:
1 | $sudo htpasswd -c /etc/apache2/svn.passwd nombre_usuario1 |
El sistema nos pedirá la contraseña y guardará los datos en el fichero. Si queremos añadir más de un usuario, lanzaremos el mismo comando sin la opción “-c” (que crea el fichero la primera vez). Reiniciamos el servidor apache:
1 | $sudo /etc/init.d/apache2 restart |
Y listo. Si accedemos a http://localhost/svn/proyecto desde nuestro navegador o cliente svn solicitará la contraseña de acceso y ya podremos empezar a utilizar el control de versiones.

