Servir un repositorio subversion con Apache-2.0
Cómo montar un repositorio subversion, con Apache, para que sea accesible remotamente
Ingredientes
- subversion
- apache2
- apache2-utils
- libapache2-svn
Crear el repositorio
Un buen sitio es /var
Servir el repo con apache
Lo más sencillo es editar el fichero /etc/apache2/mods-available/dav_svn.conf
. Tienes que añadir un bloque similar a éste:
<Location /svn/myrepo> DAV svn SVNPath /var/svn/repo </Location>
Ahora hay que asegurarse de que el módulo DAV_SVN está activado. Normalmente estará activado automáticamente, pero si no es tu caso, se hace con:
Permisos
Hay que permitir que Apache pueda leer y escribir en el repositorio:
Cargar los cambios
No se te olvide…
Acceso remoto
El repositorio es accesible, para clientes subversion, webdav o navegadores web convencionales, a través de:
http://example.com/svn/myrepo/
Con esto tendrás un repositorio complemente público. Todo el que quiera podrá acceder tanto para descargar como para subir ficheros. Como eso normalmente no es lo deseable, sique leyendo…
Repositorio privado
Si lo que quieres es que solo unos usuarios concretos puedan acceder al repositorio tienes que definirlo de este modo:
La sistaxis es análoga a la que se utiliza en Apache para restringir el acceso a un directorio. El fichero /etc/apache2/dav_svn.passwd
es un fichero de claves típico de Apache. Para añadir usuarios utiliza el método habitual:
En este caso es muy recomendable habilidar SSL en el servidor Apache, pues de otro modo la contraseña viajaría ‘en claro’ a través de la red.
Acceso restringido
Otra posibilidad (muy común en el mundo del software libre) es tener un repositorio accesible para todo el mundo, pero sólo modificable por ciertos usuarios. En este caso la configuración sería algo como: