Installation d’un serveur SVN sous Ubuntu

Le but de ce billet est de mettre en place un serveur de gestion de versions basée sur SVN+SSH.

On commence par installer le package subversion qui comprend à la fois le client et le serveur SVN.

# sudo svn update
# sudo apt-get install subversion

on créé un utilisateur et un groupe générique svn.

# sudo adduser svn
Adding user `svn’ …
Adding new group `svn’ (1000) …
Adding new user `svn’ (1001) with group `svn’ …
Creating home directory `/home/svn’ …
Copying files from `/etc/skel’ …
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for svn
Enter the new value, or press ENTER for the default
Full Name []: SVN
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [y/N] y

Pour des questions de sécurité, je vous conseille de désactiver le SHELL pour cet utilisateur:

# sudo vipw
svn:x:1001:1000:SVN,,,:/home/svn:/usr/sbin/nologin

Si vous souhaitez accéder à votre serveur SVN avec un compte unix bien précis, il faut ajouter le login de ce compte au groupe svn:

# sudo vigr
svn:x:1000:nicolargo

Puis on créé un répertoire ou seront stockées les sources de vos programmes.

# sudo mkdir /var/svn

Il faut ensuite demander à SVN de créer un répertoire SVN pour notre projet:

# sudo svnadmin create /var/svn/projet

Puis de changer les droits:

# sudo chown -R svn:svn /var/svn
# sudo chmod -R 775 /var/svn

Il ne reste plus qu’a tester votre serveur à partir d’une machine distante en “important” votre projet (dont les sources sont localisées dans le répertoire ~/projet pour illustrer ce billet).

Avant l’importation, on va créer la structure classique de SVN:

projet
- trunk
- branches
- tags

client# svn mkdir –parents  svn+ssh://nicolargo@monserveur/var/svn/projet/trunk -m “”
client# svn mkdir –parents  svn+ssh://nicolargo@monserveur/var/svn/projet/tags -m “”
client# svn mkdir –parents  svn+ssh://nicolargo@monserveur/var/svn/projet/branches -m “”

Puis on importe les sources:

client# cd ~/projet
client# svn import . svn+ssh://nicolargo@monserveur/var/svn/projet/trunk -m “Premiere importation”
nicolargo@monserveur’s password:

Révision 0 propagée.

Il ne reste plus qu’a tester l’exportation des sources:

client# cd ~
client# mv projet projet.init
client# svn co svn+ssh://nicolargo@monserveur/var/svn/projet/trunk projet

Révision 0 extraite.

Pour aller plus loin dans l’utilisation de votre nouveau serveur SVN, je vous conseille le très bon article de Ulhume sur son non-blog…(remplacer juste http:// par svn+ssh://)

4 commentaires


  1. Seza, le 29/04/2009 (#6315)

    Grace à toi j’ai découvert les commandes vipw et vigr !!


  2. khalid, le 1/05/2009 (#6323)

    Pratique et simple..
    Je suis à la recherche d’un GUI pour svn à la TortoiseSVN, j’utilise RapidSVN mais pas d’intégration (clique droit) pour Gnome sous Ubuntu.. :(


  3. NiRaDo, le 29/09/2009 (#6909)

    @khalid : Tu peux utiliser nautilus svn. Voir http://code.google.com/p/nautilussvn/


  4. jeremy, le 23/04/2010 (#8033)

    Bonjour ! Je sais que cet article n’est guère rescent mais je viens de le suivre l’installation de mon dépot SVN. Je le trouve très bien ! Cependant je tiens a vous sgnaler que j’ai eu une erreur à une étape.

    En effet la commande sudo chmod -R 775 /var/svn modifie aussi les droits sur les fichiers qui ne sont pas des dossiers en les rendant executables ce qui cause une erreur svn import [...] qui suit.

    Du coup, j’ai adapté à la main laborieusement les droits et tout fonctionne … existerait il une méthode pour résoudre ce problème ?

    Merci encore !


  5. jeremy, le 23/04/2010 (#8034)

    Bonjour ! Je sais que cet article n’est guère rescent mais je viens de le suivre l’installation de mon dépot SVN. Je le trouve très bien ! Cependant je tiens a vous sgnaler que j’ai eu une erreur à une étape.

    En effet la commande sudo chmod -R 775 /var/svn modifie aussi les droits sur les fichiers qui ne sont pas des dossiers en les rendant executables ce qui cause une erreur svn import [...] qui suit.

    Du coup, j’ai adapté à la main laborieusement les droits et tout fonctionne … existerait il une méthode pour résoudre ce problème ?

    Merci encore !


Laisser un message

Les informations saisies resteront privées.