Note: dans tout ce billet, '[projet]' doit etre remplacé par le nom de votre projet ( sans espaces ni caracteres speciaux )

Commencons par installer quelques paquets.

Avant toute chose, un petit:

apt-get update

histoire de récuperer une liste de paquets toute fraiche.

Ensuite:

apt-get install libapache2-mod-python trac subversion subversion-tools

qui sont dans l'ordre: mod_python pour apache, trac en lui-meme, subversion, et enfin les outils admin de subversion

Ensuite, créons les répertoires qui vont accueillir les projets svn et trac:

mkdir /home/svn-data mkdir /home/trac-data

Créons un premier projet svn:

cd /home/svn-data

svnadmin create [projet]

Editez les 3 fichiers de config dans /home/svn-data/[projet]/conf/ ( authz, passwd et svnserve.conf ):

authz:

[/]

rw = votrelogin



passwd:

votrelogin = votrepassword

svnserve.conf:

auth-access = write
# Commentez la ligne suivante pour permettre aux utilisateurs anonymes de checkouter / exporter vos données
anon-access = none
password-db = passwd
authz-db = authz
realm = Svn [projet]

Puis créons l'environnement trac qui va avec:

cd /home/trac-data

trac-admin [projet] initenv

Répondez aux questions selon votre projet. A la question "Repository type", laissez "svn" ( par défaut ) Au moment de donner l'emplacement du depot, donnez l'emplacement absolu sur votre fs: /home/svn-data/[projet]

Ensuite créons le virtualhost apache pour activer trac:

nano /etc/apache2/sites-availables/trac

<VirtualHost *>

DocumentRoot /home/trac-data/[projet]/
ServerName trac.votre-domaine.tld

<Location />
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /home/trac-data/[projet]/
PythonOption TracUriRoot /
</Location>
<Location /login>
AuthType Basic
AuthName "[projet]: Trac"
AuthUserFile /home/trac-data/[projet]/.htpasswd
Require valid-user
</Location>

CustomLog /var/log/apache2/trac.[projet].access.log combined

</VirtualHost>

Simple précaution, on force l'activation de mod_python ( dpkg devrait normalement avoir posé la question, mais on ne sait jamais )

a2enmod python

Activons le Vhost fraichement crée:

a2ensite trac

Derniers réglages: permettre a apache ( donc trac ) l'acces au dépot ainsi qu'a son environnement

chown -R www-data:www-data /home/svn-data chown -R www-data:www-data /home/trac-data

Lancons le serveur svn: ( -d = deamonize, -r = rootpath )

svnserve -d -r /home/svn-data/

On croise les doigts et on valide les modifs en redémarrant apache:

/etc/init.d/apache2 force-reload

Une petite précision: En l'état, Trac va ronchonner parce que le depot svn est vide...

Faisons-lui plaisir en créant l'arborescence du projet ( sous la forme classique /trunk, /branches et /tags )

cd ~

mkdir temp

cd temp

mkdir trunk mkdir branches mkdir tags

svn import . svn://localhost/[projet] --username=[votrelogin] --password=[votrepassword]

Et on finit par supprimer le repertoire temporaire:

cd ~ rm -Rf temp

Normalement, votre depot subversion et votre Trac sont fonctionnels.