Vient du latin subvertere
Par hr le mercredi 22 octobre 2008, 17:28 - administration - Lien permanent
Lorsqu'on souhaite fournir un projet à la communauté, on doit se poser la question du gestionnaire de version. Il me semble indispensable d'utiliser un tel outil si d'autres personnes viennent à participer au projet. Je vous présente ici une solution rapide de serveur subversion avec accès svnserve sur une debian. Oui, ce post n'est pas drôle, on ne rigole pas avec les VCS, merde !
Il faut bien évidemment commencer par installer les outils nécessaire à l'utilisation de subversion.
# apt-get install subversion
J'ai choisis de créer un utilisateur système dédié aux opérations svn. Cet utilisateur est très subtilement appelé 'svn' et la racine des données subversion se trouve dans /var/lib/svn :
# addgroup --system svn # adduser --system --disabled-login --ingroup svn --no-create-home --home /var/lib/svn --gecos "subversion" --shell /bin/false svn # mkdir /var/lib/svn # chown svn:svn /var/lib/svn # chmod 755 /var/lib/svn
Le serveur d'accès est svnserve. Attention, c'est le choix le plus simple à mettre en place mais il souffre de sérieux handicaps par rapport aux alternatives. Je préfère limiter l'accès du serveur svn à un répertoire donné pour éviter d'éventuelles fuites.
$ grep svn /etc/services svn 3690/tcp subversion # Subversion protocol svn 3690/udp subversion $ grep svn /etc/inetd.conf svn stream tcp nowait svn /usr/bin/svnserve svnserve -i -r /var/lib/svn # /etc/init.d/openbsd-inetd restart
Maintenant que nous avons un serveur d'accès, il faut créer des données, c'est un peu le jeu ma pauv' Lucette. Un dépot pour un projet fictif appelé 'project' est un début.
# svnadmin create /var/lib/svn/project # chown -R svn:svn /var/lib/svn/project
Dans le cas d'un dépôt ayant besoin d'un accès authentifié, il y a deux fichiers à modifier :
/var/lib/svn/project/conf/conf/svnserve.conf :
[general] password-db = passwd realm = project
/var/lib/svn/project/conf/conf/passwd :
[users] user = password
L'environnement est maintenant complètement disponible, on peut essayer de récupérer les sources du projet (vide) et y créer puis publier un fichier.
$ svn co svn://localhost/project $ cd project $ touch foo $ svn add foo $ svn ci -m 'test' foo $ svn list foo
Si tout se passe bien c'est gagné, sinon, il est utile de se pencher sur l'excellent livre O'Reilly traitant du sujet.
Attention, votre configuration svn est minimale et conviendra pour un petit serveur personnel. Dans le cas d'un projet plus important de gestion de code il faudra probablement se tourner vers un accès webdav grâce à apache (lighttpd ne le supporte pas encore !!) et un système d'authentification plus performant.