Installation et configuration d'un repository SVN

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Vous voulez profiter de Subversion, successeur de CVS, il vous faut d'abord faire l'installation d'Apache 2.

2 Installation

Voici les packages à installer :

Command aptitude
aptitude install subversion libapache2-svn subversion-tools

3 Configuration d'SVN

3.1 Configuration du module

Editez le module "dav_svn" :

Command vi
vi /etc/apache2/mods-enabled/dav_svn.conf

Puis adaptez cette configuration pour vous :

Configuration File /etc/apache2/mods-enabled/dav_svn.conf
 <Location /svn>
      #Quand le client va accéder à /svn l'URL sera pris en charge
      #par les directives d'ici, donc par subversion 
 
      #Chargement du module subversion 
      DAV svn
      # Chemin de votre dépôt
      SVNPath '''/usr/local/svn
      # Chemin si vous avez plusieurs repository
      SVNParentPath '''/usr/local/svn
 
      #Ici on demande une authentification avec mot de passe
      #utilisez htpasswd2 pour créer le fichier
      AuthType Basic
      AuthName '''"Subversion Repository"
      AuthUserFile '''/etc/apache2/dav_svn.passwd
 
      #Ici on demande l'authentification que pour les opérations
      #d'écriture sur le dépôt.
      <LimitExcept GET PROPFIND OPTIONS REPORT>
          Require valid-user
      </LimitExcept>
 </Location>

3.2 Configuration d'Apache

Ajoutez ceci dans votre "VirtualHost" dans la configuration d'Apache :

Configuration File /etc/apache2/site-enabled/default
 <Directory /usr/local/svn>
     Options Indexes FollowSymLinks MultiViews
     AllowOverride None
     Order allow,deny
     allow from all
 </Directory>

3.3 Définition des accès

Ensuite nous allons créer un fichier contenant les utilisateurs autorisés à se connecter :

Command htpasswd
htpasswd -c /etc/apache2/dav_svn.passwd $USER

4 Mise en place du repository

  • Création d'un repo (repository) :
Command
svnadmin create /usr/local/svn/project

  • Importation d'un projet :
Command svn
svn import /home/$USER/project file:///usr/local/svn/project -m "initial import"

Si tout c'est bien passé, vous devriez avoir ceci :

Committed revision 1.
  • Vérification :
Command svn
svn ls file:///usr/local/svn/project

5 Démarrage du démon

Pour démarrer le démon :

Command svnserve
svnserve -d -r /usr/local/svn/project --listen-port=3690

Mettre un port d'écoute. Le 3690 est celui d'SVN par défaut

  • Etat des logs :
Command svn
svn log svn://localhost:3690

6 Utilisation

6.1 Un repository dans un autre repository

Si par exemple, vous souhaitez avoir un repository, puis un dossier à l'intérieur de celui ci pointant vers un autre repository, c'est possible en vous plaçant dans le dossier qui va contenir les autres repository, puis en lançant cette commande :

Command svn
svn propedit svn:externals .

Ensuite, entrez le nom du dossier que vous souhaitez et l'adresse SVN :

lib svn://svnsrv/trunk/library
  • lib : le dossier contenant ce repository SVN
  • svn:// : l'adresse du SVN

Voici un autre exemple :

Nagios         http://svn/admin/Production/Nagios

Vous pouvez ensuite sauvegarder cette configuration pour qu'elle soit permanente en faisant un commit.

7 Références

Mettre en place un repo SVN
Documentation Apache Subversion
Documentation SVN et auto updatable working copy
Subversion and Trac as Virtual-Hosts documentation