La vamos a hacer cortita… Abstenerse de comentarios del tipo “GIT es mejor”, “Hubieras instalado GIT”, “SVN está deprecado” etc, etc…

Un personaje pidió tener un servidor SVN, así que se le instaló y estos son los pasos a seguir.

En resumen vamos a instalar Apache 2 + DAV + SubVersion + Trac sobre un servidor Debian Wheezy y vamos a asumir que los archivos de SVN y Trac los vamos a dejar en /mnt/storage

1.- Instalamos los paquetes necesarios

1
apt-get install python-setuptools trac subversion libapache2-svn libapache2-mod-python

2.- Activamos el modulo de apache dav_fs

1
a2enmod dav_fs

Esto activará también los módulos dav y dav_svn por que son dependencias.

3.- Creamos un directorio con la estructura que llevarán nuestros repositorios por defecto.

1 2 3
mkdir-p/mnt/storage/plantilla_repo/branches mkdir-p/mnt/storage/plantilla_repo/tags mkdir-p/mnt/storage/plantilla_repo/trunk

4.- Creamos el archivo que contendrá los usuarios y contraseñas para acceder tanto al repositorio SVN como a la web de Trac.

1 2
htpasswd -c/etc/apache2/svn.passwd usuariofoo htpasswd /etc/apache2/svn.passwd usuariobar

OJO, primero es con “-c” para crear el archivo y luego SIN “-c” para agregar otro usuario, si usan “-c” nuevamente el archivo se sobrescribirá.

5.- Ahora creamos o editamos el archivo de configuración del sitio web en apache, en este caso editaremos el default site.

1
nano/etc/apache2/sites-enabled/000-default

Y agregamos:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
<Location  /svn>     DAV svn     SVNParentPath /mnt/storage/svn     SVNAutoversioning on     AuthType Basic     AuthName "Subversion Repository"     AuthUserFile /etc/apache2/svn.passwd     Require valid-user </Location /svn> <Location /trac>     SetHandler mod_python     PythonHandler trac.web.modpython_frontend     PythonOption TracEnvParentDir /mnt/storage/trac/     PythonOption TracUriRoot /trac     AuthType Basic     AuthName "Trac"     AuthUserFile /etc/apache2/svn.passwd     Require valid-user </Location /trac>

6.- Creamod el directorio para los proyectos en Trac

1
mkdir/mnt/storage/trac

Ahora creamos nuestro primer proyecto

7.- Creamos el repocitorio SVN e importamos el directorio que tiene la plantilla con la estructura por defecto.

1 2 3 4 5
svnadmin create /mnt/storage/svn/myproject --fs-type fsfs svn import/mnt/storage/plantilla_repo file:///mnt/storage/svn/Proyecto1 -m"Importacion inicial" find /mnt/storage/svn/Proyecto1 -type f |xargschmod600 find /mnt/storage/svn/Proyecto1 -type d |xargschmod2770 chown-Rf root.www-data /mnt/storage/svn/Proyecto1

8.- Creamos el proyecto en Trac

1 2 3 4
trac-admin /mnt/storage/trac/Proyecto1 initenv find /mnt/storage/trac/Proyecto1 -type f |xargschmod600 find /mnt/storage/trac/Proyecto1 -type d |xargschmod2770 chown-Rf root.www-data /mnt/storage/trac/Proyecto1

9.- Reiniciamos apache

1
service apache2 restart
  1. Agregamos un usuario con permisos de administrador al proyecto en Trac, este debe estar en el archivo svn.passwd que creamos anteriormente
1
trac-admin /mnt/storage/trac/Proyecto1

Esto abrirá una shell donde se pueden ejecutar los comando para Trac, ejecutamos lo siguiente para asignar al administrador.

1
Trac [/mnt/storage/trac/Proyecto1]> permission add usuariofoo TRAC_ADMIN

Con esto estaríamos listos y ya pueden acceder al proyecto en Trac en la url, por ejemplo, http://dominio.com/trac/Proyecto1 y para el SVN http://dominio.com/svn/Proyecto1, logeandose con los usuarios que agregamos en el svn.passwd


Carlos Albornoz

rocking since MCMLXXXII