Plus le temps passe et plus les distributions de Mac OS X s’enrichissent de logiciels intéressants. Leopard est livré de base avec tout ce qu’il faut pour gérer un serveur svn : Apache 2.2 et subversion. Voyons comment configurer rapidement un serveur svn+http avec accès authentifié. Il est possible bien sûr de se contenter d’un serveur svn natif, mais l’accès aux dépots par l’intermédiaire d’Apache apporte une grande souplesse en terme d’authentification et de permission d’accès.
Pour pouvoir faire les manipulations décrites ci-dessous, il faut être administrateur d’une machine sous Mac OS X 10.5. Mac OS X 10.4 et inférieurs ne sont pas livrés par défaut avec les logiciels nécessaires à la mise en place d’un serveur svn. Ceci posé, il va nous falloir : un logiciel type « Terminal» , un éditeur de texte (vi, bbedit, textmate, …) et un accès internet.
L’installation présentée ici est faite dans le répertoire /Library/WebServer/, dans le quel tous les membres du groupe admin ont le droit d’écrire par défaut. La première étape est la création de l’espace physique des dépots de sources (repository). On se déplace dans /Library/WebServer/, on crée un répertoire Subversion, on crée le premier repository, et on ajoute les fichiers d’authentification et de permission pour les utilisateurs.
cd /Library/WebServer/ mkdir Subversion svnadmin create Subversion/mon_projet vi deny.htsvnaccesspolicy
1. ici on colle/édite/adapte le contenu
2. suivant en fonction de ses besoins :
[groups] admins = patpro autregroupe = eric, robert tous = sam, patpro, eric, robert, gonzague
[mon_projet:/] @admins = rw @autregroupe = rw sam = r
1. ensuite on génère les couples login/mot de passe
2. pour les utilisateurs :
htpasswd -bc deny.htpasswd patpro mot-de-passe
sudo chown -R www:www /Library/WebServer/Subversion
Ensuite, on peut ajouter des feuilles de styles XSL/CSS pour agrémenter le rendu des repositories dans Apache. Il est nettement plus simple en terme de configuration de stocker des feuilles de styles à la racine du serveur, c’est à dire dans le répertoire /Library/WebServer/Documents/ :
cd /Library/WebServer/Documents/ curl -O http://svn.collab.net/repos/svn/trunk/tools/xslt/svnindex.xsl curl -O http://svn.collab.net/repos/svn/trunk/tools/xslt/svnindex.css
Maintenant, il faut modifier la configuration d’Apache pour qu’il charge les modules Subversion et sache lire un repository. On modifie d’abord le fichier /private/etc/apache2/httpd.conf pour assurer le chargement des modules, puis on crée un fichier de configuration dédié à nos dépots. À l’aide de son éditeur de texte préféré, on modifie /private/etc/apache2/httpd.conf en ajoutant les deux lignes ci-dessous à la suite des autres directives « LoadModule» :
LoadModule dav_svn_modu