Introduction

Subversion (parfois abrégé SVN) est un logiciel de gestion de version. Selon l'article consacré de la Wikipédia :

La gestion de version (en anglais revision control) est une activité qui consiste à maintenir l'ensemble des versions d'un logiciel. Essentiellement utilisée dans le domaine de la création de logiciels, elle est surtout concernée par le code source ; mais elle peut être utilisée pour tout type de document informatique.


Vous l'aurez compris, mon article s'adresse donc aux développeurs qui veulent sauvegarder facilement leur travail, se donner la possibilité de revenir en arrière en cas d'erreur, ou bien de partager un projet avec des amis. Rien n'est bien compliqué et même un programmeur débutant ou occasionel devrait pouvoir s'y retrouver.

Eclipse est un environnement de développement intégré (IDE en Anglais) qui est d'une puissance remarquable. Certainement l'un des projets libres les plus remarquables (merci IBM).

Mettre en place un serveur SVN

Sur la machine sur laquelle vous voulez faire tourner le serveur, suivez les étapes suivantes :

  • Installez subversion. Sur une Ubuntu (ou Ubuntu Server) un petit sudo apt-get install subversion devrait faire l'affaire.
  • Créez un répertoire dans lequel vous voulez stoquer les fichiers du serveur SVN et placez vous dans ce répertoire

bash$ {mkdir,cd} svn

  • Créez ensuite un dépôt SVN

bash$ svnadmin create myProject
bash$ cd myProject

  • Modifiez les fichiers de configuration

bash$ cd conf
bash$ edit svnserve.conf
Il vous suffit en fait de supprimer tous les # mais pas les ###

  • Dans le même répertoire (conf) créez un fichier passwd contenant le texte suivant (adapté bien sûr à vos besoins)
[users]
monlogin = monmotdepasse
monautrelogin = monautremotdepasse
  • Démarrez le démon svn en lui donnant le dépôt que vous avez créé plus haut comme argument

svnserve -d -r ~/svn/myProject/

  • Vous pouvez ensuite accéder à votre serveur svn en ligne de commande depuis l'ordinateur client... mais autant utiliser une belle interface graphique.

Configurer Eclipse

Pour les utilisateurs de Ubuntu, Eclipse est aussi disponible dans les dépôts (dans universe plus précisément) et donc un apt-cache search eclipse devrait vous montrer tout ce que vous pouvez installer (en fonction de vos besoins de programmeurs).

Eclipse ne supporte pas le SVN par défaut. Nous allons donc installer une rustine qui fait le travail.

  • Allez dans Help>Software updates>Find and Install
  • Cliquez sur search for new features
  • Ajoutez un nouveau site disant (remote site) du nom de Subclipse (http://subclipse.tigris.org/update)
  • Installez subclipse qui vous apportera le support du svn

Accéder à votre serveur SVN dans Eclipse

  • Allez dans Go to Window>open Perspective>new et choisissez SVN repository exploring.
  • Cliquez avec le bouton droit dans SVN Repository et cliquez sur add>new repository.
  • Dans url mettez le nom complet de votre serveur svn (par exemple svn://monpc.mondomaine.org/)$$Vous pouvez aussi créer des sous répertoires si vous voulez plusieurs projets sur votre même serveur... mais je n'en parlerai pas ici). root url est la même adresse.
  • Entrez votre login et mot de passe comme décrit dans le fichier passwd ci-dessus.

Partager un projet sur SVN

  • Allez dans votre perspective de développement favorite (par exemple Java perspective).
  • Cliquez avec le bouton droit sur la racine du projet à partager.
  • Allez dans Team>Share project.
  • Choisissez SVN[1]
  • Choisissez votre dépôt svn.

Et ensuite ?

Ensuite chaque fois que vous voulez partager un nouveau fichier vous devez sélectionner le fichier et dans Team choisir add to version control.
L'option commit toujours dans Team est celle qui vous permet d'envoyer votre travail. A chaque fois Eclipse (en fait svn) vous demandera d'entrer un commentaire. Je vous conseille de le faire car cela vous permettra de vous y retrouver dans votre travail pas la suite.
Vous pouvez aussi récupérer des fichier depuis votre dépôt en allant dans la perspective svn. Vous pouvez comparer les versions, créer des tags (qui vous permettent de revenir facilement sur des versions stables)... bref, c'est génial.

Merci

Merci à Yann de m'avoir fait découvert le svn, de m'avoir guidé au début, et surtout d'avoir réussi à me convaincre. Grâce à mon serveur j'ai économisé de longues heures de travail, surtout puisque je peux revenir sur la dernière version qui fonctionnait en cas de problème, mais aussi puisque je me sens rassuré sachant que tous mes fichiers sont sauvegardés et que je ne risque donc pas de perdre mon travail.

Notes

[1] J'obtiens un message d'erreur à ce niveau, mais il n'influe pas sur la suite.