Subversion est un système de gestion de version. Cela permet de garder les différentes versions de chaque fichier du projet. Ainsi en cas d'erreurs ou de retour vers une version précédente du site, il est très simple de retrouver la version désirée. Subversion (ou SVN) est également très utile pour mutualiser un développement, un groupe de développeurs peut ainsi se servir de l'outil pour stocker toutes les évolutions du code.
WampServer disposant d'un serveur Apache, il est possible d'intégrer SVN pour qu'il l'utilise et ainsi pouvoir disposer d'un serveur SVN sous Windows.
Il faut d'abord télécharger les fichiers binaires sources de SVN. Actuellement la dernière version de SVN est la 1.6.6 et peut se télécharger ici.
Une fois le téléchargement fini et l'installation lancée, l'installeur proposera comme chemin par défaut C:\Program Files\Subversion\. Comme SVN va être utiliser avec Wamp, il faut remplacer ce chemin par c:\wamp\svn.
Une fois l'installation finie, il faut créer un répertoire pour les repository, qui sera par exemple c:\wamp\svn\repos. A l'aide de l'invite de commande Windows, on peut se déplacer dans le répertoire c:\wamp\svn.
cd c:\wamp\svn
Maintenant pour créer le dossier repos :
mkdir repos
Après être passé dans le dossier repos (cd repos), il faut créer un dossier pour le projet :
mkdir projet1
Et finalement, il faut créer le repository SVN pour ce projet en utilisant la commande svnadmin :
svnadmin create c:\wamp\svn\repos\projet1
Le repository est créé, il faut maintenant configurer Apache pour qu'il fournisse l'hébergement HTTP à SVN.
Il faut d'abord copier les modules Apache de SVN depuis le répertoire d'installation de SVN vers le répertoire d'installation d'Apache. Il faut donc copier mod_authz_svn.so et mod_dav_svn.so depuis c:\wamp\svn\bin vers c:\wamp\bin\apache\Apache2.2.11\modules.
Ensuite pour activer ces modules, il faut ouvrir le fichier de configuration d'Apache httpd.conf, qui est dans C:\wamp\bin\apache\Apache2.2.11\conf. Dans ce fichier, il faut trouver la section où les lignes commencent par LoadModule et ajouter à la suite les lignes suivantes :
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
Ensuite, il faut définir les paramètres de configuration de SVN dans le fichier de configuration d'Apache. A la fin du fichier httpd.conf, ajouter les lignes suivantes et enregistrer le fichier :
DAV svn
#specify the root directory for repositories
SVNParentPath c:/wamp/svn/repos/
#list repositories
SVNListParentPath on
#access control policy
#authentication file
AuthzSVNAccessFile conf/apachesvnauth
#type of authentication
AuthType Basic
#the name of the authentication
AuthName "Subversion repository"
#file with user passwords values
AuthUserFile conf/apachesvnpasswd
#only allow authorized users to log in
Require valid-user
Avec cette configuration, il faut inclure deux fichiers supplémentaires : apachesvnauth et apachesvnpasswd. Le premier configure les permissions et le deuxième contient la liste des identifiants et la liste des mots de passe. Pour créer le fichier apachesvnpasswd, il faut retourner dans l'invite de commande et se déplacer vers le dossier C:\wamp\bin\apache\Apache2.2.11\bin. Il faut ensuite executer la commande suivante :
htpasswd -cm apachesvnpasswd username
où username correspond à l'identifiant voulu. Un mot de passe va être demander et le fichier apachesvnpasswd sera créé. Il faut ensuite le déplacer dans le dossier de configuration C:\wamp\bin\apache\Apache2.2.11\conf.
Pour créer le fichier de permissions apachesvnauth, ouvrir un fichier vide dans le bloc-note et entrer les lignes suivantes :
[/]
*=r
[projet1:/]
username=rw
projet1 correspond au nom du repository choisi précédemment et username à l'identifiant créé avec la commande htpasswd. * signifie "tous les utilisateurs", r donne le droit de lecture et w le droit d'écriture. Il faut ensuite sauvegarder ce fichier dans le même dossier config que le apachesvnpasswd (avec le bloc-note Windows, nommer le ficher "apachesvnauth" dans la fenêtre Enregistrer sous, avec les guillemets pour qu'il soit enregistrer sans extension).
Pour finir, il suffit de redémarrer tous les services de WampServer. La liste des repository est accessible dans un navigateur à l'adresse http://localhost/svn/.