Instalar un servidor svn

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.

Deja tu comentario

Tu correo nunca será compartido. Los campos marcados con * son obligatorios

*
*