Serveur Subversion
Matthieu Vogelweith
10 juillet 2008

Résumé

L’objectif de cette page est de détailler l’installation d’un serveur Subversion [1].

Ce document a été rédigé en LaTeX en utilisant l’excellent Vim sous Debian GNU/Linux. Il est disponible aux formats XHTML et PDF. Les sources LaTeX sont disponibles ici : LATEX

Licence

Copyright ©2008 Matthieu VOGELWEITH <matthieu@vogelweith.com>.

Vous avez le droit de copier, distribuer et/ou modifier ce document selon les termes de la GNU Free Documentation License, Version 1.2 ou ultérieure publiée par la Free Software Foundation ; avec aucune section inaltérable, aucun texte de première page de couverture, et aucun texte de dernière page de couverture. Une copie de la licence est disponible dans la page GNU Free Documentation License.

Table des matières

Présentation

- principe
- avantages
- différences par rapport aux autres

1.1 Subversion vs CVS

Subversion (SVN) est un système de contrôle des versions OpenSource distribué sous une licence compatible Apache/BSD. Cet outil en développement depuis plus de 3 ans propose un grand nombre de nouveautés par rapport à son aîné vieillissant qu’est CVS :

Subversion semble donc plus adapté que CVS, notamment au niveau de l’authentification (Apache donc PAM, NIS, ...) et de la gestion des versions sur l’arborescence du dépot.

Installation de SubVersion

# aptitude install subversion libapache2-svn subversion-tools

- Version standalone et version module d’apache
- Plutot en module d’apache, car
– permet de bénéficier des méthodes d’authentification et de sécurité d’apache
– evite d’ouvrir un port supplémentaire sur le firewall

Administration du dépot

- création du dépot
- fonctionnement des branches et des tags
- cycle de developpement habituel

3.1 Création des dépots

Les dépots doivent être créés, obligatoirement dans le système de fichier local, avec les commandes suivantes :

# mkdir /var/lib/svn 
# svnadmin create /var/lib/svn/projet1 
# chown -R www-data:www-data /var/lib/svn 
# chmod -R 700 /var/lib/svn

Dans l’exemple ci-dessus, un dépot a été créé : projet1. Il est important de bien donner les droits à l’utilisateur virtuel d’Apache (www-data) pour que le depot puisse être accéssible par le Web.

Attention, maintenant que les dépots sont créés, aucun fichier ne doit être créé, modifié ou supprimé manuellement dans le dépot. Tout doit se faire avec les commandes fournies par Subversion.

3.2 Premier import

Respect de l’architecture préconisée : trunk, tags, branches.

# rm -rf /tmp/projet1 
# mkdir -p /tmp/projet1/trunk 
# mkdir -p /tmp/projet1/tags 
# mkdir -p /tmp/projet1/branches 
# svn import /tmp/projet1/ file:///var/lib/svn/projet1 -m "Creation initiale de l'arborescence"

3.3 Configuration d’Apache

# Virtual host pour la gestion du depot SVN 
<VirtualHost example.org> 
 
        # Config generale du Vhost 
        Servername svn.example.org 
        ServerAdmin webmaster@example.org 
 
        # Droits d'acces au repertoire 
        <Directory /var/lib/svn/> 
                Options Indexes FollowSymLinks MultiViews 
                AllowOverride None 
                Order allow,deny 
                allow from all 
        </Directory> 
 
        # Acces URL 
        <Location /> 
                DAV svn 
                # Repertoire contenant les depots SVN 
                SVNParentPath /var/lib/svn 
                AuthType Basic 
                AuthName "Subversion Repository" 
 
                # Authentification sur l'annuaire LDAP 
                # AuthLDAPEnabled on 
                # AuthLDAPAuthoritative on 
                # AuthLDAPURL ldap://ldap.example.org/ou=people,dc=example,dc=org?login 
                # require valid-user 
 
                # Ajout d'une feuille de style 
                # SVNIndexXSLT "/styles/svnindex.xsl" 
        </Location> 
</VirtualHost>

- ATTENTION s’il y a des errordocuments Perso ! ! !

Installation de WebSVN

- Visualisation du dépot

# aptitude install websvn

- indiquer le chemin du répertoire parent des dépots lors de la configuration.
- supprimer le lien de /var/www/websvn.
- Ajouter l’alias qui va bien - éditer la config dans le fichier /etc/websvn/config.inc

Les clients disponibles

Plusieurs clients SVN sont disponibles sur les plateformes UNIX et Windows. Dans les deux cas, il est toujours possible de visualiser le contenu du dépot ainsi que les modifications et les commentaires de chaque fichier/dossier via un navigateur Web.

5.1 Pour Linux

5.2 Pour windows

Utilisation

Ce chapitre décrit rapidement le fonctionnement de Subversion pour une utilisation de tous les jours.

6.1 Principe

6.2 Mise à jour de la ressource locale

$ svn update

6.3 Tests

http://serveur_de_test/ma_page.php

6.4 Validation des modifications

Lorsque les tests sont réussi, en fin de journée ou lorsque les modifications sont validées et considérée comme correctes, on peut mettre a jour le code sur le serveur Subversion. Cette opération est réalisée simplement par la commande commit :

$ svn commit

6.5 Visualisation des modifications

Maintenant que les modifications sont effectives sur le serveur Subversion, on peut facilement visualiser l’historique des modifications via un navigateur Web :

http://serveur_subversion/svn/nom_du_depot

Références

Dernière modification le 11/07/2008 à 09:05.