Contrôle de versions avec Subversion

Le logiciel Subversion permet de gérer l'évolution de projets et leurs différentes versions. Si vous connaissez RCS ou CVS, Subversion entend leur succéder et en moderniser le principe.

Préliminaires à l'utilisation de Subversion

Créer un répertoire de dépôt

Pour gérer l'évolution de projets (qu'il s'agisse de fichiers TeX, de programmes ou de scripts en n'importe quel langage, etc.), il faut d'abord, comme sous CVS, créer un répertoire de dépôt.

bireme ~ $ mkdir svn
bireme ~ $ svnadmin create svn
bireme ~ $ 

Vous avez maintenant un répertoire de dépôt prêt à recevoir vos projets.

Ajouter des projets

Pour ajouter des projets à Subversion, allez d'abord dans le répertoire contenant les fichiers du projet (s'ils existent). Dans notre exemple, disons que vous avez un répertoire nommé mon_projet, qui contient un seul fichier, intitulé fichier1.

bireme ~ $ svn import mon_projet file:///users/promo/section/login/svn -m "version0"
Adding         mon_projet/fichier1

Committed revision 1.
bireme ~ $ 

Maintenant, vous avez :

Vous pouvez déposer autant de projets que vous le désirez dans votre répertoire de dépôt.

Créer des répertoires de travail

Il ne vous reste plus qu'à créer un (ou plusieurs) répertoire(s) de travail :

bireme ~ $ svn checkout file:///users/promo/section/login/svn svn-travail
A  mon_projet/fichier
Checked out revision 1.
bireme ~ $

Évidemment, vous pouvez travailler sur un projet même si le répertoire de dépôt n'est pas chez vous. Pour cela, tapez simplement l'URL du projet. En voici quelques exemples :

bireme ~ $ svn checkout http:///adresse/repertoire/projet svn-travail
bireme ~ $ svn checkout https:///adresse/repertoire/projet svn-travail
bireme ~ $ svn checkout svn:///adresse/repertoire/projet svn-travail
bireme ~ $ svn checkout svn+ssh:///adresse/repertoire/projet svn-travail

Vous récoltez ainsi tous les fichiers du projet. Modifiez-les de la façon habituelle, typiquement avec un éditeur de texte.

Subversion au quotidien

Mettre à jour un répertoire de travail

Pour mettre à jour votre répertoire de travail, utilisez la commande :

bireme ~ $ svn update

ou bien, si vous ne voulez mettre à jour qu'un nombre limité de fichiers :

bireme ~ $ svn update fichier1 fichier2 etc.

Apportez les modifications que vous voulez sur les fichiers de votre répertoire de travail.

Ajout et retrait de fichiers

Pour ajouter des fichiers, commencez par les créer, comme à l'accoutumée. Par exemple, éditez le fichier fichier2 et remplissez-le (ou non). Ensuite, tapez :

bireme ~ $ svn add fichier2

Cette commande avertit Subversion qu'il devra prendre en compte ce nouveau fichier. Le fichier sera ajouté au dépôt Subversion la prochaine fois que vous taperez svn commit. Attention ! Si vous ne tapez pas svn commit, le fichier ne sera pas ajouté au dépôt !

Pour retirer des fichiers de Subversion, utilisez la commande :

bireme ~ $ svn delete fichier

Distribuer vos modifications

Quand vous avez terminé d'apporter vos modifications, vous pouvez les distribuer :

bireme ~ $ svn commit

ou bien, si vous ne voulez distribuer qu'un nombre limité de fichiers :

bireme ~ $ svn commit fichier1 fichier2 etc.

Fonctionnalités avancées de Subversion

Historique

Vous pouvez consulter l'historique d'un fichier :

bireme ~ $ svn log fichier

mais aussi de tous les fichiers d'un projet :

bireme ~ $ svn log 

Comparaison de fichiers

Vous pouvez comparer deux versions d'un fichier, ici la première et la deuxième versions :

bireme ~ $ svn diff --revision 1:2 fichier

Vous pouvez aussi comparer, par exemple, la dernière version distribuée d'un fichier avec la précédente :

bireme ~ $ svn diff --revision PREV:COMMITTED fichier

Retour à la version antérieure

Si vous regrettez les modifications apportées à un fichier, tapez :

bireme ~ $ svn revert fichier

Le fichier reviendra à son état antérieur.

En savoir plus

Pour en savoir plus sur Subversion, consultez :

Auteur : Baptiste Mélès.