Estos pasos fueron realizados con la versión
testing de Debian Squeeze, pero deberían servir como punto de partida. También debo señalar que estos pasos fueron pensado para facilitar el acceso de los usuarios, y no tanto por la seguridad.
Creación del repositorio
Como usuario
root creamos un directorio donde estará el repositorio, por ejemplo:
# mkdir /var/svn-repos
Creamos el repositorio propiamente dicho:
# svnadmin create /var/svn-repos/test_repo
Ajustar permisos del repositorio
Para que el repositorio pueda ser usado por varios usuarios tenemos que ajustar algunos permisos.
Primero creamos un grupo, donde agregaremos a aquellos usuarios que van a poder acceder al repositorio. Por ejemplo:
# addgroup development
Ahora agregamos los usuarios al grupo creado:
# adduser juan development
# adduser luis development
Ajustamos los permisos del repositorio:
# chown -R www-data:development /var/svn-repos/*
# chmod -R g+w /var/svn-repos/*
(Este ultimo comando se podría mejorar a
find . -perm -u=w -print0 | xargs -0 chmod g+w, de manera que solo agregamos permisos de escritura solo a aquellos archivos que ya lo tienen)
Accediendo al repositorio
Ahora podemos acceder al repositorio a través de ssh:
$ svn co svn+ssh://hostname/var/svn-repos/test_repo
Para evitar que debamos responder repetidas veces la
passphrase conviene utilizar
ssh-agent con una clave privada.
Si queremos acceder al repositorio por
http primero tenemos que crear una base de datos con los usuarios permitidos:
# htpasswd -c -m /etc/apache2/dav_svn.passwd juan
# htpasswd -m /etc/apache2/dav_svn.passwd luis
La primera linea crea el archivo, la siguiente sirve para agregar los demás usuarios.
Ahora modificamos el archivo
/etc/apache2/mods-available/dav_svn.conf agregando:
<Location /test_repo>
DAV svn
SVNPath /var/svn-repos/test_repo
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>
Recargando la configuración de apache con
# invoke-rc.d apache2 reload, podemos acceder al repositorio como usuario:
$ svn co http://hostname/test_repo
También podremos acceder desde un navegador, con nuestro usuario y
password, al repositorio desde la dirección http://
hostname/test_repo.
Instalando ViewVC
La página de acceso por web es bastante simple, si queremos algo con más funcionalidad podemos instalar
ViewVC.
Editamos el archivo
/etc/viewvc/viewvc.conf. Dentro de la sección [general] agregamos una linea así:
svn_roots = test_repo : /var/svn-repos/test_repo
Opcionalmente: podemos comentar la linea que comienza con cvs_roots, a menos que hayamos instalado un repositorio
Cvs. También podemos habilitar la opción
root_as_url_component.
Creamos un archivo
/etc/viewvc/apache.conf con la configuración para apache. Este archivo contiene la siguiente linea:
ScriptAlias /viewvc /usr/lib/cgi-bin/viewvc.cgi
Agregamos este archivo al directorio con las configuraciones de apache y recargamos:
# ln -sf /etc/viewvc/apache.conf /etc/apache/conf.d/viewvc.conf
# invoke-rc.d apache2 reload
Una vez terminado los pasos anteriores tenemos un interfaz web más bonita que se puede acceder desde: http://
hostname/viewvc/test_repo.
Referencias: