Subversion

Le choix d'un outil de gestion de configuration à la fois puissant et facile à mettre en oeuvre a longtemps un problème. D'un côté CVS, efficace mais limité, ou Microsoft Visual Source Safe, simple à mettre en oeuvre mais très incomplet, de l'autre l'artillerie lourde comme Continuus CM, qui nécessitent un projet à part entière pour la mise en place.

Heureusement, la communauté Open Source n'est pas restée inactive et a enfin abouti à une version finalisée d'un nouvel outil : SubVersion, disponible à l'adresse : http://subversion.tigris.org/. En plus des fonctionnalités de base de gestion de version supportées par CVS, SubVersion permet un accès par le web ou simplement par l'explorateur Windows, grâce à l'utilisation de Webdav. Un autre avantage conséquent par rapport à CVS ou VSS est la gestion des versions des répertoires. Ainsi il est possible de revenir à une version antérieure d'un projet quelles que soient les modifications apportées à l'arborescence.

Le présent article a pour objectif de décrire la mise en place d'un référentiel SubVersion sur Windows, en utilisant Apache.

Installation

Installation Apache

Même s'il est possible d'utiliser Subversion en accès direct par le système de fichier, ou avec le serveur autonome, le système prend toute sa dimension en mode intégration avec Apache.

Pour installer Apache, il faut :

Le serveur doit être accessible à l'adresse : http://localhost.

Installer Subversion

Télécharger la version installable de SubVersion depuis http://subversion.tigris.org/project_packages.html . L'installation est très simple, seul le répertoire d'installation est demandé.

Avant de configurer Apache, il est nécessaire de créer le référentiel SubVersion. Cette création peut être effectuée par la commande svnadmin :

svnadmin create d:/svnrepository
          

ou par le menu TortoiseSVN décrit plus loin.

Configuration Apache avec Subversion

Copier le fichier mod_dav_svn.so dans le répertoire modules d'Apache. Il s'agit du plugin permettant d'ajouter le support SubVersion aux fonctions DAV natives d'Apache.

Il reste à activer dans Apache les modules SubVersion et indiquer l'emplacement du référentiel dans le fichier de configuration httpd.conf.

L'activation des modules est effectuée par la commande LoadModule. Localiser et décommenter l'appel au module DAV et ajouter l'activation du module SubVersion :

LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so

Le chemin d'accès web du référentiel doit être indiqué par une entrée Location :

<Location /svnrepository>
  DAV svn
  SVNPath d:/svnrepository
  SVNIndexXSLT "/svnindex.xsl"
  SVNAutoversioning on
</Location>

SVNPath indique le chemin local du référentiel créé précédemment.

SVNIndexXSLT permet de modifier le rendu du contenu dans le cas du parcours avec un simple navigateur. Un page xsl d'exemple, ainsi que la feuille de style associée se trouvent dans le répertoire tools/xslt des sources de SubVersion. Les archives contenant les sources sont disponibles dans le répertoire Source tarballs à l'adresse http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260 Pour un premier test, il suffit de recopier ces fichiers dans le répertoire htdocs d'Apache, ce qui correspond à la configuration ci-dessus.

Activer le SVNAutoversioning permet de supporter les clients WebDAV basiques ne reconnaissant pas la norme deltaV (RFC 3253).

Il est nécessaire de redémarrer Apache pour que les changements soient pris en compte. Comme l'installation de SubVersion modifie le PATH système, il est même nécessaire de redémarrer la machine pour pouvoir redémarrer Apache en tant que service.

Authentification Windows

Il est possible de gérer les utilisateurs directement dans SubVersion. Cependant, étant dans un environnement Windows, il est plus facile de s'appuyer sur l'infrastructure d'authentification existante.

Le module mod_auth_sspi permet de résoudre ce problème. Il est disponible à l'adresse : http://tortoisesvn.tigris.org/mod_auth_sspi.zip.

L'installation de ce module passe par les étapes suivantes :

Utilisation

L'installation du serveur est terminée. Il faut maintenant choisir un client pour accéder à Subversion.

Navigateur

L'accès à SubVersion est basé sur WebDAV, qui est une extension d'HTTP, il est donc possible d'accéder au référentiel avec un simple navigateur :

Cependant, cet accès ne permet pas d'écrire dans le référentiel

Explorateur

Les versions récentes de Windows supportent nativement WebDAV, il est donc possible d'accéder au référentiel en créant un Favori réseau :

Cette solution permet de manipuler le contenu du référentiel, mais ne permet pas d'accéder aux fonctionnalités avancées (historique des versions, obtenir une version antérieure, ...)

TortoiseSVN

La solution la plus complète et la plus ergonomique pour accéder à un référentiel SubVersion depuis Windows est TortoiseSVN, disponible à l'adresse : http://tortoisesvn.tigris.org/

Ce logiciel se présente sous la forme d'un menu contextuel dans l'explorateur Windows. Il permet de créer un référentiel, de construire un espace de travail local, ainsi que de gérer toutes les autres interactions (mise à jour, différentiel, livraison, ...).

Intégration à l'environnement de développement

Il est aussi évidemment possible d'appeler SubVersion directement depuis l'environnement de développement. Il existe des plugins pour IntelliJ IDEA, Eclipse, et n'importe quel autre IDE supportant SCC (via subway : http://nidaros.homedns.org/subway/).