SVNBOOK AppA Subversion Quick-Start Guide
De Framalang Wiki.
Cette page fait partie du projet Version control with subversion.
| Pseudo | Code | Rôle | Statut |
|---|---|---|---|
| Hotshot92 | Traduction | Fait | |
| SVF | 1ère Relecture | Fait | |
| Validation |
Source : http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.intro
Sommaire |
Subversion Quick-Start Guide
If you're eager to get Subversion up and running (and you enjoy learning by experimentation), this appendix will show you how to create a repository, import code, and then check it back out again as a working copy. Along the way, we give links to the relevant chapters of this book.
WARNING
- If you're new to the entire concept of version control or to the “copy-modify-merge” model used by both CVS and Subversion, you should read Chapter 1, Fundamental Concepts before going any further.
- Si vous débutez avec les concepts de suivi de versions ou avec le modèle "Copier-Modifier-Fusionner" utilisé par CVS et Subversion, vous devriez lire le chapitre 1, "Notions fondamentales" avant d'aller plus loin.
Installing Subversion
Subversion is built on a portability layer called APR—the Apache Portable Runtime library. The APR library provides all the interfaces that Subversion needs to function on different operating systems: disk access, network access, memory management, and so on. While Subversion is able to use Apache as one of its network server programs, its dependence on APR does not mean that Apache is a required component. APR is a standalone library usable by any application. It does mean, however, that like Apache, Subversion clients and servers run on any operating system that the Apache httpd server runs on: Windows, Linux, all flavors of BSD, Mac OS X, NetWare, and others.
The easiest way to get Subversion is to download a binary package built for your operating system. Subversion's web site (http://subversion.tigris.org) often has these packages available for download, posted by volunteers. The site usually contains graphical installer packages for users of Microsoft operating systems. If you run a Unix-like operating system, you can use your system's native package distribution system (RPMs, DEBs, the ports tree, etc.) to get Subversion.
Subversion est construit sur une couche de portabilité appelée APR (Apache Portable Runtime en anglais, pour bibliothèque Apache de portabilité des exécutables). Cette bibliothèque APR fournit toutes les interfaces dont Subversion a besoin pour fonctionner sur différents systèmes d'exploitation : accès aux disques, au réseau, gestion de la mémoire, et d'autres choses encore. Bien que Subversion soit capable d'utiliser Apache comme serveur réseau, la dépendance envers APR ne signifie pas que Apache soit un composant indispensable. APR est une bibliothèque autonome, utilisable par n'importe quelle application. Cela signifie en revanche que, tout comme Apache, les clients et serveurs Subversion fonctionnent sur n'importe quel système d'exploitation sur lequel fonctionne le serveur httpd Apache : Windows, Linux, tous les systèmes BSD, Mac OS X, NetWare entre autres.
La manière la plus simple d'obtenir Subversion est de télécharger un paquet binaire construit pour votre système d'exploitation. Le site Web de Subversion (http://subversion.tigris.org) met souvent à disposition de tels paquets, produits par des volontaires. Le site contient généralement des paquets avec une interface graphique d'installation pour les utilisateurs de systèmes Microsoft. Si votre système d'exploitation est de type Unix, vous pouvez utiliser le gestionnaire de paquets fourni avec votre distribution (RPM, DEB, l'arbre des ports, etc.) pour obtenir Subversion.
Alternatively, you can build Subversion directly from source code, though it's not always an easy task. (If you're not experienced at building open source software packages, you're probably better off downloading a binary distribution instead!) From the Subversion web site, download the latest source code release. After unpacking it, follow the instructions in the INSTALL file to build it. Note that a released source package may not contain everything you need to build a command-line client capable of talking to a remote repository. Starting with Subversion 1.4 and later, the libraries Subversion depends on (apr, apr-util, and neon) are distributed in a separate source package suffixed with -deps. These libraries are now common enough that they may already be installed on your system. If not, you'll need to unpack the dependency package into the same directory where you unpacked the main Subversion source. Regardless, it's possible that you may want to fetch other optional dependencies such as Berkeley DB and possibly Apache httpd. If you want to do a complete build, make sure you have all of the packages documented in the INSTALL file.
If you're one of those folks that likes to use bleeding-edge software, you can also get the Subversion source code from the Subversion repository in which it lives. Obviously, you'll need to already have a Subversion client on hand to do this. But once you do, you can check out a working copy of the Subversion source repository from http://svn.collab.net/repos/svn/trunk/: [59]
Sinon, vous pouvez aussi compiler Subversion directement à partir des sources, bien que ce ne soit pas toujours facile (si vous n'avez pas l'habitude de compiler vos logiciels, choisissez plutôt de télécharger un binaire pour votre distribution). Sur le site Web de Subversion, télécharger la dernière version du code source. Puis, après l'avoir décompacté, suivez les instructions fournies dans le fichier INSTALL pour la compilation. Notez que le fichier contenant le code source n'inclut pas forcément tout ce dont vous avez besoin pour construire un client en ligne de commande apte à communiquer avec un dépôt distant. Depuis Subversion 1.4, les bibliothèques dont Subversion dépend (apr, apr-util et neon) sont distribuées dans un paquet source distinct suffixé par -deps. Ces bibliothèques sont maintenant tellement courantes qu'elles sont peut-être déjà installées sur votre système. Sinon, vous devrez décompacter le paquets des dépendances au même endroit où vous avez décompacté le code source de Subversion. Indépendamment de ces paquets obligatoires, vous voudrez peut-être également installer d'autres bibliothèques optionnelles telles que Berkeley DB ou Apache httpd. Si vous voulez effectuer une compilation complète, assurez-vous de bien avoir l'ensemble des paquets documentés dans le fichier INSTALL.
Si vous êtes de ceux qui aiment avoir la toute dernière version des logiciels, vous pouvez aussi obtenir le code source de Subversion depuis le dépôt Subversion. Évidemment, il faudra pour y parvenir que vous disposiez déjà d'un client Subversion... Mais, si c'est le cas, vous pouvez extraire une copie de travail du dépôt contenant le code source de Subversion à l'adresse http://svn.collab.net/repos/svn/trunk [59] :
$ svn checkout http://svn.collab.net/repos/svn/trunk subversion A subversion/HACKING A subversion/INSTALL A subversion/README A subversion/autogen.sh A subversion/build.conf …
$ svn checkout http://svn.collab.net/repos/svn/trunk subversion A subversion/HACKING A subversion/INSTALL A subversion/README A subversion/autogen.sh A subversion/build.conf …
The preceding command will create a working copy of the latest (unreleased) Subversion source code into a subdirectory named subversion in your current working directory. You can adjust that last argument as you see fit. Regardless of what you call the new working copy directory, though, after this operation completes, you will now have the Subversion source code. Of course, you will still need to fetch a few helper libraries (apr, apr-util, etc.)—see the INSTALL file in the top level of the working copy for details.
High-Speed Tutorial
- “Please make sure your seat backs are in their full, upright position and that your tray tables are stored. Flight attendants, prepare for take-off….”
What follows is a quick tutorial that walks you through some basic Subversion configuration and operation. When you finish it, you should have a general understanding of Subversion's typical usage.
- "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..."
POINT OF INTEREST
- The examples used in this appendix assume that you have svn, the Subversion command-line client, and svnadmin, the administrative tool, ready to go on a Unix-like operating system. (This tutorial also works at the Windows command-line prompt, assuming you make some obvious tweaks.) We also assume you are using Subversion 1.2 or later (run svn --version to check.)
- Les exemples utilisés dans cet appendice supposent que vous disposez de svn (le client en ligne de commande 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 le vérifier).
Subversion stores all versioned data in a central repository. To begin, create a new repository:
$ svnadmin create /var/svn/repos $ ls /var/svn/repos conf/ dav/ db/ format hooks/ locks/ README.txt
$ svnadmin create /var/svn/depot $ ls /var/svn/depot conf/ dav/ db/ format hooks/ locks/ README.txt
This command creates a new directory, /var/svn/repos, which contains a Subversion repository. This new directory contains (among other things) a collection of database files. You won't see your versioned files if you peek inside. For more information about repository creation and maintenance, see Chapter 5, Repository Administration.
Subversion has no concept of a “project.” The repository is just a virtual versioned filesystem, a large tree that can hold anything you wish. Some administrators prefer to store only one project in a repository, and others prefer to store multiple projects in a repository by placing them into separate directories. We discuss the merits of each approach in the section called “Planning Your Repository Organization”. Either way, the repository manages only files and directories, so it's up to humans to interpret particular directories as “projects.” So while you might see references to projects throughout this book, keep in mind that we're only ever talking about some directory (or collection of directories) in the repository.
In this example, we assume you already have some sort of project (a collection of files and directories) that you wish to import into your newly created Subversion repository. Begin by organizing your data into a single directory called myproject (or whatever you wish). For reasons explained in Chapter 4, Branching and Merging, your project's tree structure should contain three top-level directories named branches, tags, and trunk. The trunk directory should contain all of your data, and the branches and tags directories should be empty:
Cette commande crée un nouveau répertoire, /var/svn/depot, qui contient un dépôt Subversion. Ce nouveau répertoire contient (entre autres choses) un ensemble de fichiers constituant une base de données. Vous ne verrez pas vos fichiers suivis en version 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".
Subversion ne connaît pas le 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 "Prévoir l'organisation de votre 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/myproject/branches/
/tmp/myproject/tags/
/tmp/myproject/trunk/
foo.c
bar.c
Makefile
…
/tmp/mon-projet/branches/
/tmp/mon-projet/tags/
/tmp/mon-projet/trunk/
Makefile
machin.c
truc.c
…
The branches, tags, and trunk subdirectories aren't actually required by Subversion. They're merely a popular convention that you'll most likely want to use later on.
Once you have your tree of data ready to go, import it into the repository with the svn import command (see the section called “Getting Data into Your Repository”):
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 "Enregistrer des données dans votre dépôt") :$ svn import /tmp/myproject file:///var/svn/repos/myproject -m "initial import" Adding /tmp/myproject/branches Adding /tmp/myproject/tags Adding /tmp/myproject/trunk Adding /tmp/myproject/trunk/bar.c Adding /tmp/myproject/trunk/foo.c Adding /tmp/myproject/trunk/Makefile … Committed revision 1. $
$ 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/truc.c Ajout /tmp/mon-projet/trunk/machin.c … Révision 1 propagée. $
Now the repository contains this tree of data. As mentioned earlier, you won't see your files by directly peeking into the repository; they're all stored within a database. But the repository's imaginary filesystem now contains a top-level directory named myproject, which in turn contains your data.
Note that the original /tmp/myproject directory is unchanged; Subversion is unaware of it. (In fact, you can even delete that directory if you wish.) To start manipulating repository data, you need to create a new “working copy” of the data, a sort of private workspace. Ask Subversion to “check out” a working copy of the myproject/trunk directory in the repository:
À 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 changé ; Subversion ne le connaît pas (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/repos/myproject/trunk myproject A myproject/foo.c A myproject/bar.c A myproject/Makefile … Checked out revision 1.
$ svn checkout file:///var/svn/depot/mon-projet/trunk mon-projet A mon-projet/Makefile A mon-projet/machin.c A mon-projet/truc.c … Révision 1 extraite.
Now you have a personal copy of part of the repository in a new directory named myproject. You can edit the files in your working copy and then commit those changes back into the repository.
- Enter your working copy and edit a file's contents.
- Run svn diff to see unified diff output of your changes.
- Run svn commit to commit the new version of your file to the repository.
- Run svn update to bring your working copy “up to date” with the repository.
For a full tour of all the things you can do with your working copy, read Chapter 2, Basic Usage.
At this point, you have the option of making your repository available to others over a network. See Chapter 6, Server Configuration to learn about the different sorts of server processes available and how to configure them.
À présent, vous disposez d'une copie personnelle d'une partie du dépôt dans un nouveau répertoire appelé mon-projet. 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 éditer le contenu d'un fichier ;
- lancez la commande svn diff pour voir la liste des différences que vos modifications ont apporté ;
- 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, lisez le 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.NOTE DE FIN DE CHAPITRE
[59] Note that the URL checked out in the example ends not with svn, but with a subdirectory thereof called trunk. See our discussion of Subversion's branching and tagging model for the reasoning behind this.
[59] Notez que l'URL que l'on extrait dans cet exemple ne se termine pas par svn mais par un sous-répertoire nommé trunk. Reportez-vous à notre discussion sur le modèle de gestion des branches pour en comprendre la raison.

