¿Que es subversion?

Subversion es un software de sistema de control de versiones diseñado específicamente para reemplazar al popular CVS, el cual posee varias deficiencias. Es software libre bajo una licencia de tipo Apache/BSD y se le conoce también como svn por ser ese el nombre de la herramienta de línea de comandos. Una característica importante de Subversion es que, a diferencia de CVS, los archivos versionados no tienen cada uno un número de revisión independiente. En cambio, todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en cierto punto del tiempo.

Fuente: http://es.wikipedia.org/wiki/Subversion

Instalación

Para configurar un sistema subversion necesitamos los siguientes paquetes:

aptitude install subversion subversion-tools

Aunque apache2 ya lo hace solo comprobaremos que tenemos incluidos estos dos módulos de apache:

a2enmod dav
a2enmod dav_svn

Instalamos subversion:

aptitude install libapache2-svn

Grupos y usuarios

Creamos un grupo subversion

groupadd desarrollo

Añadimos los usuarios que deban pertenecer al grupo con el siguiente comando

usermod -G desarrollo usuario1

Tener en cuenta que tenemos que crear un nuevo fichero por cada usuario del sistema subversion:

htpasswd -c /etc/apache2/dav_svn.passwd usuario1
htpasswd /etc/apache2/dav_svn.passwd usuario2

La opción ”’-c”’ crea el fichero el resto de usuarios simplemente serán insertados a ese fichero.

Crear un repositorio

Crearemos la estructura principal del repositorio:

mkdir /home/desarrollo
svnadmin create /home/desarrollo

Damos permisos al directorio:

chown -R www-data:subversion /home/svn/
chmod -R 770 /home/svn/

Configurar apache

Configuramos el fichero de gestión del modulo para poder usar subversion con nuestra configuración:

vim /etc/apache2/mods-available/dav_svn.conf

Configuración:

<Location /svn>
DAV svn
SVNPath /home/desarrollo
AuthType Basic
AuthName “Repositorio Subversion del proyecto”
AuthUserFile /etc/apache2/dav_svn.passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>

Reiniciamos el servidor apache.

/etc/init.d/apache2 restart