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.
« 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 | |
---|---|
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 |
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.
Entrez dans le répertoire de votre copie de travail et éditez le contenu d'un fichier ;
lancez la commande svn diff
pour
obtenir la liste des différences que vos modifications ont
engendrée ;
lancez la commande svn commit
pour
propager la nouvelle version de votre fichier vers le
dépôt ;
lancez la commande svn update
pour
« mettre à jour » votre copie de travail à partir
du 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.