Installer un dépôt subversion sur une Debian
Par M le dimanche 19 novembre 2006, 17:55 - Technique - Lien permanent
Subversion est le logiciel que beaucoup considérent comme le successeur de CVS (dont moi
).
CVS, basé sur RCS, souffre donc des limites de ce dernier (non exhaustif) :
- problèmes avec les majuscules/minuscules dans les nom des fichiers
- opérations pas atomiques
- pertes de données diverses
Bref, un logiciel qui peut parfois s'avérer dangeureux! (pertes de données).
Voici donc comment installer son successeur :
La méthode d'accès aux données change par rapport à CVS. Avec ce dernier, on accédait à un serveur dédié à CVS (pserver) pour échanger les données avec le dépôt.
Cette méthode existe avec Subversion, mais très déconséillée pour des raisons de sécurité, mais aussi parce que la solution préférée est plus souple. Cette méthode consiste à utiliser WebDAV (une extension d'HTTP) pour accéder au dépôt. L'interêt est qu'il suffit d'un serveur Web pour accéder aux données.
Le tout implique une installation d'Apache 2.x déjà existante. Ensuite, il suffit d'installer subversion et son greffon sur Apache :apt-get install subversion libapache2-svn
Ensuite, il faut :
- créer un dépôt
- configurer Apache
- et c'est parti!
Créer un dépôt
Pour cela, il faut aller dans un répertoire vide et taper la commande : svnadmin create .
Le dépôt se trouve dans ce répertoire, il ne faut pas éditer à la main les fichiers qu'il contient (sauf experts
)
Maintenant, il faut aussi donner les droits d'écriture à Apache2 : chown -R www-data:www-data <chemin-du-depot>
Configurer Apache
Tout se joue dans le fichier /etc/apache2/mods-available/dav_svn.conf. Pour que ce fichier soit pris en compte par Apache, il faut qu'il y ait un lien symbolique vers ce fichier dans le répertoire /etc/apache2/mods-enabled/.
Dans le fichier /etc/apache2/mods-available/dav_svn.conf, il y a quelques lignes à éditer:
<Location /svn> , le chemin d'accès sur le serveur web
SVNPath /svn/ , le chemin du dépôt subversion
Ensuite l'authentification :
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Ici, le fichier /etc/apache2/dav_svn.passwd contient les utilisateurs/mots de passes des utilisateurs qui ont le droit d'accéder au dépôt, à la mode htpasswd.
Et maintenant on oblige que les utilisateurs s'authentifie :
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
PS : si Apache2 répond une erreur 500 avec un commentaire du genre "no user file" dans /var/log/apache2/error.log , il faut activer l'authentification : a2enmod auth_basic
Rien n'empeche d'ajouter des restrictions supplémentaires pour l'accès au dépôt.
Reste plus qu'à relancer Apache : /etc/init.d/apache2 restart et si tout ce passe bien, le dépôt est prêt!
Il suffit de tester que tout est bien configurer en se connectant au serveur Web sur le bon répertoire et normallement, après l'authentification, on doit voir un message du type
.Revision 0
Notes :
Modifié le 25/02/2007 : Ajout de la commande de changement des droits d'accès au répertoire contenant le dépot.
Modifié le 26/02/2007 : Ajout de la remarque sur l'authentification pas activé par défaut dans apache2.
Commentaires
Bon tuto pour un apache2 qui n'utilise pas les vhosts. Si vous utiliser des vhosts n'editer pas le fichier dav_svn.conf. Faites vos modifs directement dans les balises <VirtualHost>...</VirtualHost> de votre nouvel host.
Cordialement