Partimos de un Centos 5.4 64 bits ya instalado

Instalar el servidor de Subversion

yum install subversion

Para comprobar que la versión de subversion es la correcta ejecuta

svn --version

En los repositorios base la versión de subversion que encontramos es la 1.4.x. En caso de querer instalar la versión 1.6 hay que añadir el repositorio rpmforge

Configurar Apache

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>

Crear el repositorio Subversion

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.

también podemos darle permisos al grupo apache en vez de a todos los usuarios chown -R apache:apache /var/svn chmod 755 /var/svn

Crear usuarios

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

Si queremos crear más usuarios, no debemos usar la opción -c, ya que esta crea un nuevo fichero, sobreescribiendo el anterior. Para el segundo y siguientes usuarios, usaremos htpasswd /etc/svn-auth-file usuario2 .
Si queremos borrar un usuario, podemos editar el fichero o usar la opción -D mayúscula.

Reiniciamos el servidor apache

/etc/init.d/httpd restart

y desde un navegador web ponemos http://ip_o_nombre/svn.

Limitar permisos

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

Referencias

http://subversion.tigris.org/

http://blogofsysadmins.com/instalar-un-servidor-de-subversion-en-un-centos-con-plesk

http://polaris.dit.upm.es/~rubentb/docs/subversion/TutorialSubversion/index.html

http://joniux.x-red.com/2008/03/31/instalando-un-servidor-subversion/