SVNBOOK Chap1 Subversion in Action Working Copies
De Framalang Wiki.
Cette page fait partie du projet Version control with subversion.
| Pseudo | Code | Rôle | Statut |
|---|---|---|---|
| Penguin | Traduction | Terminé | |
| SVF | 1ère Relecture | Fait | |
| Hotshot92 | Mise à jour en version 1.5 | Fait | |
| Hotshot92 | Retranscription des sorties des exemples en français | Fait | |
| Relecture | |||
| Validation |
Sommaire |
Titre
Working Copies
Copies de travail
Paragraphe 1
You've already read about working copies; now we'll demonstrate how the Subversion client creates and uses them.
A Subversion working copy is an ordinary directory tree on your local system, containing a collection of files. You can edit these files however you wish, and if they're source code files, you can compile your program from them in the usual way. Your working copy is your own private work area: Subversion will never incorporate other people's changes, nor make your own changes available to others, until you explicitly tell it to do so. You can even have multiple working copies of the same project.Vous avez déjà découvert ce que sont les copies de travail ; nous allons maintenant vous montrer comment le client Subversion les crée et les utilise.
Une copie de travail Subversion est une arborescence classique de répertoires de votre système local, contenant un ensemble de fichiers. Vous pouvez éditer ces fichiers comme vous le voulez, et s'il s'agit de code source, vous pouvez compiler votre programme à partir de ceux-ci de la façon habituelle. Votre copie de travail est votre espace de travail personnel privé : Subversion n'y incorporera jamais les changements d'autres personnes, ni ne rendra jamais disponibles vos propres changements à d'autres personnes, tant que vous ne lui demanderez pas explicitement de le faire. Vous pouvez même avoir plusieurs copies de travail pour un même projet.Paragraphe 2
After you've made some changes to the files in your working copy and verified that they work properly, Subversion provides you with commands to “publish” your changes to the other people working with you on your project (by writing to the repository). If other people publish their own changes, Subversion provides you with commands to merge those changes into your working copy (by reading from the repository).
Après que vous ayez apporté quelques modifications aux fichiers de votre copie de travail, et vérifié qu'elles fonctionnent correctement, Subversion vous fournit des commandes pour "publier" vos changements vers les autres personnes qui travaillent avec vous sur votre projet (en les écrivant dans le dépôt). Si d'autres personnes publient leurs propres modifications, Subversion vous fournit des commandes pour fusionner ces changements dans votre copie de travail (en les lisant dans le dépôt).
Paragraphe 3
A working copy also contains some extra files, created and maintained by Subversion, to help it carry out these commands. In particular, each directory in your working copy contains a subdirectory named .svn, also known as the working copy administrative directory. The files in each administrative directory help Subversion recognize which files contain unpublished changes, and which files are out of date with respect to others' work.
Une copie de travail contient également quelques fichiers supplémentaires, créés et maintenus par Subversion, pour l'aider à effectuer ces opérations. En particulier, chaque répertoire de votre copie de travail contient un sous-répertoire appelé .svn, aussi appelé répertoire administratif de votre copie de travail. Les fichiers de chacun de ces répertoires administratifs permettent à Subversion d'identifier quels fichiers contiennent des modifications non-publiées, et quels fichiers sont périmés vis-à-vis du travail des autres.
Paragraphe 4
A typical Subversion repository often holds the files (or source code) for several projects; usually, each project is a subdirectory in the repository's filesystem tree. In this arrangement, a user's working copy will usually correspond to a particular subtree of the repository.
Un dépôt Subversion typique contient souvent les fichiers (ou code source) de plusieurs projets ; habituellement, chaque projet est un sous-répertoire de l'arborescence du système de fichiers du dépôt. Dans cette situation, la copie de travail d'un utilisateur correspondra à une sous-arborescence particulière du dépôt.
Paragraphe 5
For example, suppose you have a repository that contains two software projects, paint and calc. Each project lives in its own top-level subdirectory, as shown in Figure 1.6, “The repository's filesystem”.
Par exemple, supposons que votre dépôt contienne deux projets logiciels, paint et calc. Chaque projet réside dans son propre sous-répertoire racine, comme indiqué dans la figure 1.6, "Le système de fichiers du dépôt".
Paragraphe 6
To get a working copy, you must check out some subtree of the repository. (The term “check out” may sound like it has something to do with locking or reserving resources, but it doesn't; it simply creates a private copy of the project for you.) For example, if you check out /calc, you will get a working copy like this:
Pour obtenir une copie de travail, vous devez extraire une sous-arborescence du répertoire. (Le terme "extraire" ("check out" en anglais) peut vous faire penser que cela a quelque chose à voir avec verrouiller ou réserver des ressources, mais ce n'est pas le cas ; cela crée simplement pour vous une copie privée du projet). Par exemple, si vous extrayez /calc, vous obtiendrez une copie de travail qui ressemblera à ça :
$ svn checkout http://svn.example.com/repos/calc A calc/Makefile A calc/integer.c A calc/button.c Checked out revision 56. $ ls -A calc Makefile integer.c button.c .svn/
$ svn checkout http://svn.exemple.com/depot/calc A calc/Makefile A calc/entier.c A calc/bouton.c Révision 56 extraite. $ ls -A calc Makefile entier.c bouton.c .svn/
Paragraphe 7
The list of letter A's in the left margin indicates that Subversion is adding a number of items to your working copy. You now have a personal copy of the repository's /calc directory, with one additional entry—.svn—which holds the extra information needed by Subversion, as mentioned earlier.
Les lettres "A" qui s'affichent dans la marge de gauche indiquent que Subversion est en train d'ajouter des éléments dans votre copie de travail. Vous avez désormais votre copie personnelle du répertoire /calc du dépôt, avec une entrée supplémentaire, .svn, qui contient des informations complémentaires nécessaires à Subversion, comme évoqué précédemment.
Paragraphe 8
Suppose you make changes to button.c. Since the .svn directory remembers the file's original modification date and contents, Subversion can tell that you've changed the file. However, Subversion does not make your changes public until you explicitly tell it to. The act of publishing your changes is more commonly known as committing (or checking in) changes to the repository.
--Danarmk 21 septembre 2007 à 21:52 (CEST):
Je viens de remplacer "livrer", traduction proposée de "commit", par "Envoyer", je trouve que ça passe mieux, vous en pensez quoi ?
--Penguin 21 septembre 2007 à 23:11 (CEST):
Je ne pense pas que ce soit une bonne idée car la version française de TortoiseSVN utilise le terme livrer (c'est pour cela que je l'ai utilisé).
--Sub Versif 2 mars 2009 à 14:58 (CET) : en accord avec la discussion de commit située sur la page Vocabulaire Subversion, paragraphe mis à jour avec "propager".
Supposons que vous fassiez des modifications à bouton.c. Comme le répertoire .svn se souvient de la date de modification et du contenu du fichier original, Subversion peut en déduire que vous avez modifié le fichier. Néanmoins, Subversion ne rend pas vos modifications publiques tant que vous ne lui dites pas de le faire. L'action de publication de vos modifications est plus communément appelée propagation ("commit" en anglais) ou archivage ("check in" en anglais), ou parfois livraison, des modifications au sein du dépôt.
Paragraphe 9
To publish your changes to others, you can use Subversion's svn commit command.
Pour rendre publiques vos modifications, vous pouvez utiliser la commande Subversion svn commit.
$ svn commit button.c -m "Fixed a typo in button.c." Sending button.c Transmitting file data . Committed revision 57.
$ svn commit bouton.c -m "Coquille corrigée dans bouton.c." Ajout bouton.c Transmission des données . Révision 57 propagée.
Paragraphe 10
Now your changes to button.c have been committed to the repository, with a note describing your change (namely, that you fixed a typo). If another user checks out a working copy of /calc, she will see your changes in the latest version of the file.
A présent, vos modifications de button.c ont été propagées au sein du dépôt, avec un commentaire décrivant ces changements (c'est à dire, que vous avez corrigé une coquille). Si un autre utilisateur extrait une copie de travail de /calc, il va voir vos modifications dans la dernière version du fichier.
Paragraphe 11
Suppose you have a collaborator, Sally, who checked out a working copy of /calc at the same time you did. When you commit your change to button.c, Sally's working copy is left unchanged; Subversion only modifies working copies at the user's request.
Supposons que vous ayez une collaboratrice, Sally, qui a extrait une copie de travail de /calc en même temps que vous. Lorsque vous propagez votre modification de bouton.c, la copie de travail de Sally reste inchangée ; Subversion ne modifie les copies de travail qu'à la demande des utilisateurs.
Paragraphe 12
To bring her project up to date, Sally can ask Subversion to update her working copy, by using the svn update command. This will incorporate your changes into her working copy, as well as any others that have been committed since she checked it out.
Pour mettre son projet à jour, Sally peut demander à Subversion de mettre à jour ("update" en anglais) sa copie de travail, en utilisant la commande svn update. Cela va intégrer vos modifications dans sa copie de travail, ainsi que celles qui ont été envoyées par d'autres personnes depuis qu'elle l'avait extraite.
$ pwd /home/sally/calc $ ls -A Makefile button.c integer.c .svn/ $ svn update U button.c Updated to revision 57.
$ pwd /home/sally/calc $ ls -A Makefile bouton.c entier.c .svn/ $ svn update U bouton.c Actualisé à la révision 57.
Paragraphe 13
The output from the svn update command indicates that Subversion updated the contents of button.c. Note that Sally didn't need to specify which files to update; Subversion uses the information in the .svn directory, as well as further information in the repository, to decide which files need to be brought up to date.
En sortie, la commande svn update indique que Subversion a mis à jour le contenu de bouton.c. Remarquez que Sally n'a pas eu besoin de spécifier quels fichiers devaient être mis à jour ; Subversion utilise les informations contenues dans le répertoire .svn, ainsi que d'autres informations en provenance du dépôt, pour décider quels fichiers doivent être mis à jour.
--Hotshot92 3 mars 2009 à 23:10 (CET):
déplacement vers la section précédente conformément au livre en version 1.5

