This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.

Tutoriel rapide

« Vérifiez que le dossier de votre siège est relevé, que votre ceinture est correctement bouclée et que la tablette devant vous est rangée et verrouillée. Personnel de cabine, attention au décollage… »

Ce qui suit est un bref tutoriel qui couvre quelques opérations élémentaires, ainsi que la configuration de base de Subversion. Une fois que vous l'aurez terminé, vous devriez avoir une compréhension globale de la façon dont Subversion peut être utilisé.

[Note] Note

Les exemples utilisés dans cette annexe supposent que vous disposez de svn (le client en ligne de commande de Subversion) et de svnadmin (l'outil d'administration) prêts à l'emploi sur un système de type Unix (ce tutoriel fonctionne également en ligne de commande sous Windows, sous réserve de quelques adaptations triviales). Nous supposons également que vous utilisez la version 1.2 ou ultérieure de Subversion (tapez svn --version pour vous en assurer).

Subversion stocke toutes les données suivies en versions dans un dépôt central. Pour commencer, créez un nouveau dépôt :

$ cd /var/svn
$ svnadmin create depot
$ ls depot
conf/  dav/  db/  format  hooks/  locks/  README.txt

Cette commande crée un nouveau dépôt Subversion dans le répertoire /var/svn/depot, en créant le répertoire depot s'il n'existe pas déjà. Ce répertoire contient (entre autres choses) un ensemble de fichiers constituant une base de données. Vous ne verrez pas vos fichiers suivis en versions si vous examinez le contenu de ces fichiers. Pour plus d'informations sur la création et la maintenance des dépôts, consultez le Chapitre 5, Administration d'un dépôt.

Dans Subversion, il n'existe pas de concept de « projet ». Le dépôt est juste un système de fichiers virtuel suivi en versions, une arborescence qui peut contenir tout ce que vous voulez. Certains administrateurs préfèrent ne stocker qu'un seul projet par dépôt, d'autres préfèrent stocker plusieurs projets par dépôt en les plaçant dans des répertoires distincts. Les mérites de chacune de ces approches sont discutés dans la section intitulée « Stratégies d'organisation d'un dépôt ». De toute façon, le dépôt ne fait que gérer des fichiers et des répertoires, c'est donc aux humains de faire le lien entre répertoires et « projets ». Ainsi, bien que vous trouverez mention de projets dans ce livre, gardez en mémoire que nous ne parlons jamais que d'un répertoire (ou d'un ensemble de répertoires) du dépôt.

Dans cet exemple, nous supposons que vous avez déjà une sorte de projet (c'est-à-dire un ensemble de fichiers et de répertoires) que vous voulez importer dans votre dépôt Subversion tout neuf. Commencez par organiser vos données dans un répertoire unique appelé mon-projet (ou quoi que ce soit d'autre). Pour des raisons que nous expliquons au Chapitre 4, Gestion des branches, la structure de votre arborescence doit contenir trois répertoires à la racine : branches, tags, et trunk. Le répertoire trunk doit contenir toutes vos données et les répertoires branches et tags doivent être vides :


/tmp/
   mon-projet/
      branches/
      tags/
      trunk/
         machin.c
         truc.c
         Makefile
         …

Les sous-répertoires branches, tags et trunk ne sont pas réellement requis par Subversion. Ils font simplement partie des conventions d'utilisation que vous voudrez certainement suivre par la suite.

Une fois l'arborescence de vos données prête, importez-la dans le dépôt avec la commande svn import (reportez-vous à la section intitulée « Enregistrement de données dans le dépôt ») :

$ svn import /tmp/mon-projet file:///var/svn/depot/mon-projet \
             -m "Import initial"
Ajout          /tmp/mon-projet/branches
Ajout          /tmp/mon-projet/tags
Ajout          /tmp/mon-projet/trunk
Ajout          /tmp/mon-projet/trunk/Makefile
Ajout          /tmp/mon-projet/trunk/machin.c
Ajout          /tmp/mon-projet/trunk/truc.c
…
Révision 1 propagée.
$

À présent, le dépôt contient cette arborescence de données. Comme indiqué précédemment, vous ne verrez pas vos fichiers directement en regardant dans le dépôt : ils sont stockés dans un magasin de données. Mais le système de fichiers imaginaire du dépôt contient désormais un répertoire racine appelé mon-projet, qui à son tour contient vos données.

Notez que le répertoire original /tmp/mon-projet n'a pas été modifié ; Subversion ignore tout de son existence (en fait, vous pouvez même le supprimer si vous voulez). Pour commencer à manipuler les données du dépôt, vous devez créer une nouvelle « copie de travail » des données, une sorte d'espace de travail privé. Demandez à Subversion de vous « extraire » une copie de travail du répertoire mon-projet/trunk du dépôt :

$ svn checkout file:///var/svn/depot/mon-projet/trunk monprojet
A  monprojet/Makefile
A  monprojet/machin.c
A  monprojet/truc.c
…
Révision 1 extraite.

À présent, vous disposez d'une copie personnelle d'une partie du dépôt, située dans un nouveau répertoire appelé monprojet. Vous pouvez éditer les fichiers dans votre copie de travail puis propager ces changements vers le dépôt.

Pour une description complète de ce que vous pouvez faire avec votre copie de travail, reportez-vous au Chapitre 2, Utilisation de base.

Dès lors, vous pouvez mettre votre dépôt à disposition sur le réseau. Consultez le Chapitre 6, Configuration du serveur pour découvrir les différents serveurs disponibles et la manière de les configurer.