Subversion

De FrozenWiki
Aller à la navigation Aller à la recherche

Subversion

Installation de Subversion sur Gentoo

Il suffit d'installer le package dev-util/subversion

Configuration d'un repository

  • Créer une structure de répertoire vide dans /var/svn/repos
  • S'assurer que le user apache appartienne au nouveau groupe svnusers nouvellement créé
  • Refléter ces droits et localisation dans le fichier /etc/conf.d/svnserve:
# Options for svnserve
SVNSERVE_OPTS="--root=/var/svn/repos" 
# User and group as which to run svnserve
SVNSERVE_USER="apache"
SVNSERVE_GROUP="svnusers"
  • Les commandes suivantes peuvent être utilisées dans un script pour créer un nouveau repository:
svnadmin create "/var/svn/repos/$1"
chown -R apache:svnusers "/var/svn/repos/$1"
chmod -R g-w "/var/svn/repos/$1"
chmod -R g+w "/var/svn/repos/$1/db"
chmod -R g+w "/var/svn/repos/$1/locks"
  • Editer les fichiers de configuration dans /var/svn/repos/<repository>/conf tel que:
    • authz contienne les lignes suivantes:
[/]
username = rw
    • passwd contienne des lignes telles que:
username = password
    • svnserve.conf contienne les lignes suivantes:
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
  • Les fichiers de configuration dans /var/svn/conf devraient être configurés de même

Service SVN

Il est possible de configurer le service subversion comme un service de démarrage (via rc-update) ou comme un service listener (via xinetd.d). Je recommande l'option service de démarrage

  • Tester le lancement du service avec
/etc/init.d/svnserve start
  • Puis le configurer en tant que service définitif avec
rc-update add svnserve default

Eventuellement, ajouter svnserve au monitoring de monit en créant le fichier /etc/monit.d/svnserve:

check process svnserve with pidfile /var/run/svnserve.pid
	start program = "/etc/init.d/svnserve zap start"
	stop program = "/etc/init.d/svnserve stop"
	if totalmem > 20.0 MB for 5 cycles then restart
	if children > 3 then alert
	if children > 5 then restart
	if 3 restarts within 5 cycles then timeout

Connexion au repository subversion

La connexion au serveur est désormais possible via

svn://server/<repository>

Trac

Installation de Trac

Il suffit d'installer le package www-apps/trac et d'ajouter -D PYTHON au fichier de configuration /etc/conf.d/apache2

Création d'un nouveau site Trac

  • Utiliser la commande de création d'un nouveau site:
trac-admin /var/lib/trac/<sitename> initenv
  • Changer les droits d'accès pour autoriser apache à modifier les fichiers:
chown apache:apache /var/lib/trac/<sitename>/conf
chown apache:apache /var/lib/trac/<sitename>/conf/trac.ini
chown apache:apache /var/lib/trac/<sitename>/db
chown apache:apache /var/lib/trac/<sitename>/db/trac.db
chown apache:apache /var/lib/trac/<sitename>/plugins
  • Editer la configuration initial, pour par exemple définir l'image de logo (section [header_logo]:
vi /var/lib/trac/<sitename>/conf/trac.ini
  • Ajouter le site à la configuration apache:
<VirtualHost ....virtualhostname....>
       .... configuration standard du virtual host ....
       <Location /sitename>
               SetHandler mod_python
               PythonInterpreter main_interpreter
               PythonHandler trac.web.modpython_frontend
               PythonOption TracEnv /var/lib/trac/sitename
               PythonOption TracUriRoot /sitename
       </Location>
</VirtualHost>

Configuration de l'authentification

easy_install http://trac-hacks.org/svn/accountmanagerplugin/0.11
  • Créer un utilisateur admin sur un des sites trac créés:
trac-admin /var/lib/trac/<sitename> permission add bob TRAC_ADMIN
  • Créer une URL sur le site qui nécessite une authentification (ldap par exemple) et configurer l'AccountManagerPlugin pour utiliser cette URL
  • Désactiver l'authentification HTTP et la remplacer par l'authentification de formulaire, en ajoutant ceci dans trac.ini, section [components]:
trac.web.auth.LoginModule = disabled