Partimos de un Centos 5.4 64 bits ya instalado
yum install subversion
Para comprobar que la versión de subversion es la correcta ejecuta
svn --version
Si queremos instalar la versión 1.6 una vez que hemos añadido el repositorio rpmforge
yum --enablerepo=rpmforge install subversion mod_dav_svn
Configuramos apache para que se puedan conectar al repositorio por Webdav
yum install mod_dav_svn
Instalamos el mod_dav_svn para apache
vi /etc/httpd/conf.d/subversion.conf
Buscamos en el fichero de configuración las siguientes líneas y descomentarlas o bien añadirlas
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /svn> #Este parámetro es donde ponemos el nombre para acceder en este caso http://dominio/svn DAV svn SVNParentPath /var/svn AuthType Basic #pedimos autentificación AuthName "Repositorio Subversion" AuthUserFile /etc/subversion/svn-auth-file Require valid-user </Location>
mkdir /var/svn/
mkdir /var/svn/repositorio1
Crearemos el directorio svn/nombrerepositorio en /var/, donde se alojarán los repositorios de subversion
svnadmin create /var/svn/repositorio1
Instalamos un repositorio en ese directorio mediante el comando svnadmin create
chmod -R 777 /var/svn/repositorio1
Muy importante es dar permisos de escritura a este directorio. Si no es así, apache no podrá modificar estos archivos y por tanto, los commits nunca funcionarán.
chown -R apache:apache /var/svn
chmod 755 /var/svn
htpasswd -c /etc/svn-auth-file usuario1
La aplicación htpasswd crea un archivo en /etc/svn-auth-file e introduce un usuario con nombre usuario1
htpasswd /etc/svn-auth-file usuario2
.
Reiniciamos el servidor apache
/etc/init.d/httpd restart
y desde un navegador web ponemos http://ip_o_nombre/svn.
Si queremos ajustar más los permisos, añadimos al fichero de configuración subversion.conf la siguiente línea
AuthzSVNAccessFile /var/svn/aclfile
Creamos un fichero “aclfile” y añadimos los permisos para cada usuario, por ejemplo
#fichero de permisos aclfile [calc:/svn/repositorio1] usuario1: rw usuario2 :r