Subversion

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

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

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