Subversion es un sistema de Control de versiones diseñado con el proposito de mejorar las caracteristicas de su antecesor CVS, esta desarrollado bajo licencia libre y junto con SourceSafe y el mismo CVS es una de las soluciones mas populares para 'versionar' codigo fuente.

Este mini-tutorial describe como instalar Subversion 1.4.6 en RedHat Enterprise Linux 4 (RHEL4), configurar el protocolo SVN:// y crear un repositorio, en una entrada posterior conectaremos un cliente.

Instalación
Desde el sitio oficial del proyecto es posible descargar el instalador de Subversion, hay varios paquetes según la distribución que se utilice, en el caso de RHEL4 elegir el RPM.

rpm -Uvh subversion-1.4.6-1.i386.rpm

Creando el repositorio
Los repositorios (o contenedores de las versiones del codigo) pueden estar almacenados en cualquier ruta del sistema de archivos. La unica condicionante es que haya un usuario que tenga privilegios de lectura y escritura sobre la carpeta elegida. En mi caso generé un usuario nuevo y en su ruta inicial guarde mi repositorio.

useradd svn-user
passwd svn-user
svnadmin create /home/svn-user/soa

Configurando Xinetd
Xinetd es un demonio dedicado a administrar la conectividad basada en TCP/IP y provee mecanismos de control de acceso. En este caso lo editaremos para configurar SVN como un servicio. Ubicalo en el directorio /etc/ y agrega al final el siguiente contenido:

service svn
{
port = 3690
socket_type = stream
protocol = tcp
wait = no
user = svn-user
server = /home/svn-user/soa
server_args = -i -r /home/svn-user/soa
}
includedir /etc/xinetd.d

Los valores de 'user' y 'server' corresponden al usuario que es dueño de la carpeta del repositorio y a esta ruta respectivamente, no olvides personalizarlos a tus necesidades.

Brindando acceso
Subversion cuenta con varias formas de acceder a los repositorios, en este caso seleccionaremos la mas simple de implementar (aunque tal vez la mas insegura tambien). Habrá que ubicar el archivo 'svnserve.conf' en la ruta '/home/svn-user/soa/conf/' y descomentar las siguientes lineas:

[general]
anon-access = none
auth-access = write
password-db = passwd
Con esto le indicamos a Subversion que los usuarios sin autenticar no tienen acceso al repositorio (anon-access = none), que los autenticados pueden escribir (auth-access = write) y que el listado de usuarios estará almacenado en el archivo passwd localizado en el mismo directorio. (password-db = passwd). Este archivo de contraseñas no existe, hay que crearlo con el siguiente formato:

[users]
pedro = password1
pablo = password2
paco = password3

Ahora solo habra que reiniciar el servicio xinetd para que tome los cambios realizados.
service xinetd restart
Pues bien, ahora tenemos funcionando un servidor de Subversion, no resta mas que conectar
el cliente de tu preferencia. En caso de que el editor o IDE que utilices para desarrollar no tenga soporte para conectar a SVN, puedes utilizar Tortoise SVN. Posteriormente publicaré como conectar JEdit, JDeveloper y el mismo Tortoise.