hgbook
diff fr/appA-svn.xml @ 970:030ccd6c5474
Finishing translation for appA-svn
author | Romain PELISSE <belaran@gmail.com> |
---|---|
date | Mon Aug 17 17:23:24 2009 +0200 (2009-08-17) |
parents | 6b680d569bb4 |
children | fb8c047cbc76 |
line diff
1.1 --- a/fr/appA-svn.xml Sun Aug 16 04:58:01 2009 +0200 1.2 +++ b/fr/appA-svn.xml Mon Aug 17 17:23:24 2009 +0200 1.3 @@ -1,25 +1,27 @@ 1.4 -<!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : --> 1.5 + 1.6 1.7 <appendix id="svn"> 1.8 <?dbhtml filename="migrating-to-mercurial.html"?> 1.9 -<title>Migrating to Mercurial</title> 1.10 - 1.11 - <para id="x_6e1">A common way to test the waters with a new revision control 1.12 - tool is to experiment with switching an existing project, rather 1.13 - than starting a new project from scratch.</para> 1.14 - 1.15 - <para id="x_6e2">In this appendix, we discuss how to import a project's history 1.16 - into Mercurial, and what to look out for if you are used to a 1.17 - different revision control system.</para> 1.18 +<title>Migrer vers Mercurial</title> 1.19 + 1.20 + <para id="x_6e1">Une manière courante de s'essayer à un nouveau 1.21 + gestionnaire de révisions est d'expérimenter consiste à migrer un 1.22 + projet existant, plutôt que le faire avec un nouveau projet. 1.23 + </para> 1.24 + 1.25 + <para id="x_6e2">Dans cette annexe, nous discuterons comment importer 1.26 + l'historique d'un projet dans Mercurial, et à quoi faire attention 1.27 + si vous êtes habitué à un autre outils de gestion de révisions. 1.28 + </para> 1.29 1.30 <sect1> 1.31 - <title>Importing history from another system</title> 1.32 - 1.33 - <para id="x_6e3">Mercurial ships with an extension named 1.34 - <literal>convert</literal>, which can import project history 1.35 - from most popular revision control systems. At the time this 1.36 - book was written, it could import history from the following 1.37 - systems:</para> 1.38 + <title>Importer l'historique depuis un autre système</title> 1.39 + 1.40 + <para id="x_6e3">Mercurial est livré avec une extension nommée 1.41 + <literal>convert</literal>, qui permet d'importer son historique 1.42 + depuis les gestionnaire de révisions les plus courants. Lors de 1.43 + l'écriture de ce livre, il pouvait importer l'historique depuis: 1.44 + </para> 1.45 <itemizedlist> 1.46 <listitem> 1.47 <para id="x_6e4">Subversion</para> 1.48 @@ -47,117 +49,123 @@ 1.49 </listitem> 1.50 </itemizedlist> 1.51 1.52 - <para id="x_6ec">(To see why Mercurial itself is supported as a source, see 1.53 - <xref linkend="svn.filemap"/>.)</para> 1.54 - 1.55 - <para id="x_6ed">You can enable the extension in the usual way, by editing 1.56 - your <filename>~/.hgrc</filename> file.</para> 1.57 + <para id="x_6ec">(Pour savoir pourquoi Mercurial lui même est supporté 1.58 + comme source, voir, see <xref linkend="svn.filemap"/>.)</para> 1.59 + 1.60 + <para id="x_6ed">Vous pouvez activer l'extension de la manière 1.61 + habituelle, en éditant votre fichier <filename>~/.hgrc</filename> file.</para> 1.62 1.63 <programlisting>[extensions] 1.64 convert =</programlisting> 1.65 1.66 - <para id="x_6ee">This will make a <command>hg convert</command> command 1.67 - available. The command is easy to use. For instance, this 1.68 - command will import the Subversion history for the Nose unit 1.69 - testing framework into Mercurial.</para> 1.70 + <para id="x_6ee">Ceci rendra la commande <command>hg convert</command> 1.71 + disponible. La commande est facile à utiliser. Par exemple, la 1.72 + commande suivante va importer l'historique Subversion du <emphasis 1.73 + remap="it">framework</emphasis> de test Nose Unit dans Mercurial. 1.74 + </para> 1.75 1.76 <screen><prompt>$</prompt> <userinput>hg convert http://python-nose.googlecode.com/svn/trunk</userinput></screen> 1.77 1.78 - <para id="x_6ef">The <literal>convert</literal> extension operates 1.79 - incrementally. In other words, after you have run <command>hg 1.80 - convert</command> once, running it again will import any new 1.81 - revisions committed after the first run began. Incremental 1.82 - conversion will only work if you run <command>hg 1.83 - convert</command> in the same Mercurial repository that you 1.84 - originally used, because the <literal>convert</literal> 1.85 - extension saves some private metadata in a 1.86 - non-revision-controlled file named 1.87 - <filename>.hg/shamap</filename> inside the target 1.88 - repository.</para> 1.89 - 1.90 - <para id="x_707">When you want to start making changes using Mercurial, it's 1.91 - best to clone the tree in which you are doing your conversions, 1.92 - and leave the original tree for future incremental conversions. 1.93 - This is the safest way to let you pull and merge future commits 1.94 - from the source revision control system into your newly active 1.95 - Mercurial project.</para> 1.96 + <para id="x_6ef">L'extension <literal>convert</literal> opère de 1.97 + manière incrémentale. En d'autres mots, après que vous ayez exécuter 1.98 + la commande <command>hg convert</command> une première fois, l'exécuter 1.99 + de nouveau importera les nouvelles révisions, ajoutées depuis votre 1.100 + précédente exécution. La conversion incrémentale ne réussiera que si 1.101 + vous exécutez <command>hg convert</command> dans le même dépôt que vous 1.102 + aviez utilisé à l'origine car l'extension <literal>convert</literal> 1.103 + sauvegarde un certains nombres de méta-données privées dans le fichier, 1.104 + non versioné, <filename>.hg/shamap</filename>, au sein du dépôt cible. 1.105 + </para> 1.106 + 1.107 + <para id="x_707">Quand vous voulez faire des modifications en utilisant 1.108 + Mercurial, le mieux est de faire un clone de l'ensemble de l'arborescence 1.109 + que vous souhaitez convertir, et laisser l'arborescence d'origine pour 1.110 + des conversions futures. C'est la manière la plus sûr pour vous laisser 1.111 + récupérer et fusionner les modifications futures depuis la gestionnaire de 1.112 + révisions source dans votre dépôt Mercurial.</para> 1.113 1.114 <sect2> 1.115 - <title>Converting multiple branches</title> 1.116 - 1.117 - <para id="x_708">The <command>hg convert</command> command given above 1.118 - converts only the history of the <literal>trunk</literal> 1.119 - branch of the Subversion repository. If we instead use the 1.120 - URL <literal>http://python-nose.googlecode.com/svn</literal>, 1.121 - Mercurial will automatically detect the 1.122 - <literal>trunk</literal>, <literal>tags</literal> and 1.123 - <literal>branches</literal> layout that Subversion projects 1.124 - usually use, and it will import each as a separate Mercurial 1.125 - branch.</para> 1.126 - 1.127 - <para id="x_709">By default, each Subversion branch imported into Mercurial 1.128 - is given a branch name. After the conversion completes, you 1.129 - can get a list of the active branch names in the Mercurial 1.130 - repository using <command>hg branches -a</command>. If you 1.131 - would prefer to import the Subversion branches without names, 1.132 - pass the <option>--config 1.133 - convert.hg.usebranchnames=false</option> option to 1.134 - <command>hg convert</command>.</para> 1.135 - 1.136 - <para id="x_70a">Once you have converted your tree, if you want to follow 1.137 - the usual Mercurial practice of working in a tree that 1.138 - contains a single branch, you can clone that single branch 1.139 - using <command>hg clone -r mybranchname</command>.</para> 1.140 + <title>Convertir plusieurs branches</title> 1.141 + 1.142 + <para id="x_708">La commande <command>hg convert</command> cité 1.143 + ci dessus converti seulement l'historique de la <literal>branche 1.144 + principal (trunk)</literal> du dépôt Subversion. Si vous utilisons 1.145 + à la place l'URL <literal>http://python-nose.googlecode.com/svn</literal>, 1.146 + Mercurial va automatiquement détecter les répertoires 1.147 + <literal>branche principale (trunk)</literal>, les <literal>étiquettes 1.148 + (tags)</literal>, et les <literal>branches</literal> que les dépôt 1.149 + Subversion utilisent généralement, et il va les importer chacun dans 1.150 + une branche Mercurial distincte.</para> 1.151 + 1.152 + <para id="x_709">Par défaut, chaque branche Subversion importée 1.153 + dans Mercurial se voit attribué un nom de branche. Une fois la 1.154 + conversion achevée, vous pouvez lister les noms des branches 1.155 + actives dans le dépôt Mercurial en utilisant la commande 1.156 + <command>hg branches -a</command>. Si vous préférez importer les 1.157 + branches Subversion sans noms, ajoutez l'option <option>--config 1.158 + convert.hg.usebranches=false</option> à la commande 1.159 + <command>hg convert</command>.</para> 1.160 + 1.161 + <para id="x_70a">Une fois que vous avez converti votre arborescence, 1.162 + si vous voulez suivre la pratique habituel avec Mercurial dans une 1.163 + arborescence qui ne contient qu'une seule branche, vous pouvez cloner 1.164 + une seule branche en utilisant 1.165 + <command>hg clone -r nomdemabranche</command>.</para> 1.166 </sect2> 1.167 1.168 <sect2> 1.169 - <title>Mapping user names</title> 1.170 - 1.171 - <para id="x_6f0">Some revision control tools save only short usernames with 1.172 - commits, and these can be difficult to interpret. The norm 1.173 - with Mercurial is to save a committer's name and email 1.174 - address, which is much more useful for talking to them after 1.175 - the fact.</para> 1.176 - 1.177 - <para id="x_6f1">If you are converting a tree from a revision control 1.178 - system that uses short names, you can map those names to 1.179 - longer equivalents by passing a <option>--authors</option> 1.180 - option to <command>hg convert</command>. This option accepts 1.181 - a file name that should contain entries of the following 1.182 - form.</para> 1.183 + <title>Associer les noms d'utilisateurs</title> 1.184 + 1.185 + <para id="x_6f0">Certains système de gestion de révisions 1.186 + ne sauvegarde, avec les modifications transférées, que les noms 1.187 + d'utilisateurs raccourcis et ceci peuvent être difficile à 1.188 + intépréter. La norme avec Mercurial est de sauvegarder le 1.189 + nom du <emphasis remap="it">committer</emphasis> et son adresse 1.190 + mail, ce qui est beaucoup plus utile pour discuter avec lui 1.191 + par la suite.</para> 1.192 + 1.193 + <para id="x_6f1">Si vous convertissez une arborescence depuis 1.194 + un gestionnaire de révisions qui utilisent seulement les noms 1.195 + raccourcies, vous pouvez associer ces noms à des équivalents 1.196 + plus détaillés en passant l'option <option>--authors</option> 1.197 + à la commande <command>hg convert</command>. Cette option 1.198 + attend un fichier qui contient des entrées de la forme suivante: 1.199 + </para> 1.200 1.201 <programlisting>arist = Aristotle <aristotle@phil.example.gr> 1.202 soc = Socrates <socrates@phil.example.gr></programlisting> 1.203 1.204 - <para id="x_6f2">Whenever <literal>convert</literal> encounters a commit 1.205 - with the username <literal>arist</literal> in the source 1.206 - repository, it will use the name <literal>Aristotle 1.207 - <aristotle@phil.example.gr></literal> in the converted 1.208 - Mercurial revision. If no match is found for a name, it is 1.209 - used verbatim.</para> 1.210 + <para id="x_6f2">Quand <literal>convert</literal> trouve une 1.211 + modification associé au nom <literal>arist</literal> dans le 1.212 + dépôt de source, il va utiliser le nom <literal>Aristotle 1.213 + <aristotle@phil.example.gr></literal> dans les révisions 1.214 + Mercurial. Si aucune correspondance n'est trouvé, il utilise 1.215 + le nom tel quel.</para> 1.216 </sect2> 1.217 1.218 <sect2 id="svn.filemap"> 1.219 - <title>Tidying up the tree</title> 1.220 - 1.221 - <para id="x_6f3">Not all projects have pristine history. There may be a 1.222 - directory that should never have been checked in, a file that 1.223 - is too big, or a whole hierarchy that needs to be 1.224 - refactored.</para> 1.225 - 1.226 - <para id="x_6f4">The <literal>convert</literal> extension supports the idea 1.227 - of a <quote>file map</quote> that can reorganize the files and 1.228 - directories in a project as it imports the project's history. 1.229 - This is useful not only when importing history from other 1.230 - revision control systems, but also to prune or refactor a 1.231 - Mercurial tree.</para> 1.232 - 1.233 - <para id="x_6f5">To specify a file map, use the <option>--filemap</option> 1.234 - option and supply a file name. A file map contains lines of the 1.235 - following forms.</para> 1.236 - 1.237 - <programlisting># This is a comment. 1.238 -# Empty lines are ignored. 1.239 + <title>Nettoyer l'arboresence</title> 1.240 + 1.241 + <para id="x_6f3">Tout les projets n'ont pas un historique parfait. 1.242 + Il peut y avoir des répertoire qui n'auraient jamais dû être ajoutés, 1.243 + un fichier qui est trop volumineux, ou même une sous partie de la 1.244 + hiérarchie qui devraient être réorganisée.</para> 1.245 + 1.246 + <para id="x_6f4">L'extension <literal>convert</literal> permet 1.247 + d'utiliser un <quote>fichier d'association</quote> qui peut 1.248 + réorganiser les fichiers et les répertoires dans un projet alors 1.249 + qu'il importe son historique. Ceci est utile non seulement quand vous 1.250 + importez l'historique d'un autre gestionnaire de révisions, mais 1.251 + aussi pour nettoyer ou refactorer l'arboresence d'un projet 1.252 + Mercurial.</para> 1.253 + 1.254 + <para id="x_6f5">Pour indiquer le fichier d'association, on utilise 1.255 + l'option <option>-filemap</option> en lui fournissant un nom de 1.256 + fichier. Le fichier d'association contient des lignes de la forme 1.257 + suivante: 1.258 + 1.259 + <programlisting># Ceci est un commentaire. 1.260 +# Les lignes vides sont ignorées. 1.261 1.262 include path/to/file 1.263 1.264 @@ -166,203 +174,207 @@ 1.265 rename from/some/path to/some/other/place 1.266 </programlisting> 1.267 1.268 - <para id="x_6f6">The <literal>include</literal> directive causes a file, or 1.269 - all files under a directory, to be included in the destination 1.270 - repository. This also excludes all other files and dirs not 1.271 - explicitely included. The <literal>exclude</literal> 1.272 - directive causes files or directories to be omitted, and 1.273 - others not explicitly mentioned to be included.</para> 1.274 - 1.275 - <para id="x_6f7">To move a file or directory from one location to another, 1.276 - use the <literal>rename</literal> directive. If you need to 1.277 - move a file or directory from a subdirectory into the root of 1.278 - the repository, use <literal>.</literal> as the second 1.279 - argument to the <literal>rename</literal> directive.</para> 1.280 + <para id="x_6f6">La directive <literal>include</literal> inclus un 1.281 + fichier, ou l'ensemble des fichiers d'un répertoire, dans le dépôt 1.282 + de destination. La directive <literal>exclude</literal> omet les 1.283 + fichiers ou répertoires du dépôt. Ceci inclut aussi les autres 1.284 + fichiers et répertoires qui ne sont pas explicitement inclus. 1.285 + La directive <literal>exclude</literal> entraine l'omission 1.286 + des fichiers ou répertoires, et autres fichiers qui ne sont 1.287 + explicitement inclus.</para> 1.288 + 1.289 + <para id="x_6f7">Pour déplacer un fichier ou un répertoire d'un 1.290 + emplacement à un autre, il faut utiliser la directive 1.291 + <literal>rename</literal>. Si vous avez besoin de déplacer un 1.292 + fichier ou un répertoire depuis un sous répertoire dans la raçine 1.293 + du dépôt, utilisez <literal>.</literal> comme second argument de 1.294 + la directive <literal>rename</literal>.</para> 1.295 </sect2> 1.296 1.297 <sect2> 1.298 - <title>Improving Subversion conversion performance</title> 1.299 - 1.300 - <para id="x_70b">You will often need several attempts before you hit the 1.301 - perfect combination of user map, file map, and other 1.302 - conversion parameters. Converting a Subversion repository 1.303 - over an access protocol like <literal>ssh</literal> or 1.304 - <literal>http</literal> can proceed thousands of times more 1.305 - slowly than Mercurial is capable of actually operating, due to 1.306 - network delays. This can make tuning that perfect conversion 1.307 - recipe very painful.</para> 1.308 - 1.309 - <para id="x_70c">The <ulink 1.310 + <title>Améliorer les performances la conversion Subversion</title> 1.311 + 1.312 + <para id="x_70b">Vous aurez souvent besoin de plusieurs essais 1.313 + avant d'arriver à la parfaite combinaison de fichier d'association, 1.314 + d'association de noms d'utilisateurs et d'autres paramètres. Hors, 1.315 + convertir un dépôt Mercurial via un protocol comme <literal>ssh</literal> 1.316 + or <literal>http</literal> peut être des milliers de fois plus long 1.317 + que ce dont le système d'exploitation est en fait capable de faire, 1.318 + à cause des latence réseau. Ceci peut rendre la conception de cette 1.319 + combinaison parfaite très douloureuse.</para> 1.320 + 1.321 + <para id="x_70c">La commande <ulink 1.322 url="http://svn.collab.net/repos/svn/trunk/notes/svnsync.txt"><command>svnsync</command></ulink> 1.323 - command can greatly speed up the conversion of a Subversion 1.324 - repository. It is a read-only mirroring program for 1.325 - Subversion repositories. The idea is that you create a local 1.326 - mirror of your Subversion tree, then convert the mirror into a 1.327 - Mercurial repository.</para> 1.328 - 1.329 - <para id="x_70d">Suppose we want to convert the Subversion repository for 1.330 - the popular Memcached project into a Mercurial tree. First, 1.331 - we create a local Subversion repository.</para> 1.332 + peut grandement améliorer la vitesse de conversion d'un dépôt 1.333 + Subversion. Il s'agit d'un programme de miroir de dépôt Subversion 1.334 + en lecture seule. L'idée est de créer un miroir local d'une 1.335 + arboresence Subversion, puis de convertir ce miroir en dépôt 1.336 + Mercurial.</para> 1.337 + 1.338 + <para id="x_70d">Supposez que nous voulions convertir le dépôt 1.339 + Subversion du populaire projet Memcached en une arboresence Mercurial. 1.340 + Premièrement, nous créons un dépôt Subversion local.</para> 1.341 1.342 <screen><prompt>$</prompt> <userinput>svnadmin create memcached-mirror</userinput></screen> 1.343 1.344 - <para id="x_70e">Next, we set up a Subversion hook that 1.345 - <command>svnsync</command> needs.</para> 1.346 + <para id="x_70e">Puis, nous allons mettre en place le 'hook' Subversion 1.347 + dont <command>svnsync</command> a besoin.</para> 1.348 1.349 <screen><prompt>$</prompt> <userinput>echo '#!/bin/sh' > memcached-mirror/hooks/pre-revprop-change</userinput> 1.350 <prompt>$</prompt> <userinput>chmod +x memcached-mirror/hooks/pre-revprop-change</userinput></screen> 1.351 1.352 - <para id="x_70f">We then initialize <command>svnsync</command> in this 1.353 - repository.</para> 1.354 + <para id="x_70f">Nous initialisons <command>svnsync</command> dans ce 1.355 + dépôt.</para> 1.356 1.357 <screen><prompt>$</prompt> <userinput>svnsync --init file://`pwd`/memcached-mirror \ 1.358 http://code.sixapart.com/svn/memcached</userinput></screen> 1.359 1.360 - <para id="x_710">Our next step is to begin the <command>svnsync</command> 1.361 - mirroring process.</para> 1.362 + <para id="x_710">La prochaine étape est de commencer le processus de 1.363 + miroir de <command>svnsync</command>.</para> 1.364 1.365 <screen><prompt>$</prompt> <userinput>svnsync sync file://`pwd`/memcached-mirror</userinput></screen> 1.366 1.367 - <para id="x_711">Finally, we import the history of our local Subversion 1.368 - mirror into Mercurial.</para> 1.369 + <para id="x_711">Enfin, nous importons l'historique de notre dépôt 1.370 + local Subversion dans Mercurial.</para> 1.371 1.372 <screen><prompt>$</prompt> <userinput>hg convert memcached-mirror</userinput></screen> 1.373 1.374 - <para id="x_712">We can use this process incrementally if the Subversion 1.375 - repository is still in use. We run <command>svnsync</command> 1.376 - to pull new changes into our mirror, then <command>hg 1.377 - convert</command> to import them into our Mercurial 1.378 - tree.</para> 1.379 - 1.380 - <para id="x_713">There are two advantages to doing a two-stage import with 1.381 - <command>svnsync</command>. The first is that it uses more 1.382 - efficient Subversion network syncing code than <command>hg 1.383 - convert</command>, so it transfers less data over the 1.384 - network. The second is that the import from a local 1.385 - Subversion tree is so fast that you can tweak your conversion 1.386 - setup repeatedly without having to sit through a painfully 1.387 - slow network-based conversion process each time.</para> 1.388 + <para id="x_712">Nous pouvons utiliser ce processus de manière 1.389 + incrémentale, si le dépôt Subversion est toujours en activité. 1.390 + Il suffit d'exécuter de nouveau <command>svnsync</command> pour 1.391 + récupérer les modifications dans notre miroir, puis <command>hg convert</command> 1.392 + les importe dans notre arboresence Mercurial.</para> 1.393 + 1.394 + <para id="x_713">Il y a deux avantages à utiliser un import à deux 1.395 + étages comme avec <command>svnsync</command></command>. Le premier 1.396 + est qu'il utilise plus efficassement la synchronisation à travers 1.397 + le réseau de Subversion que la commande <command>hg convert</command>, 1.398 + et donc il transfère moins de données à travers ce dernier. La deuxième 1.399 + est que l'import depuis un dépôt subversion local est si rapide que 1.400 + vous pouvez améliorer votre conversion de ce dernier, en le répétant 1.401 + succesivement, sans souffrir de la qualité de la connection 1.402 + réseau.</para> 1.403 </sect2> 1.404 </sect1> 1.405 1.406 <sect1> 1.407 <title>Migrating from Subversion</title> 1.408 1.409 - <para id="x_6f8">Subversion is currently the most popular open source 1.410 - revision control system. Although there are many differences 1.411 - between Mercurial and Subversion, making the transition from 1.412 - Subversion to Mercurial is not particularly difficult. The two 1.413 - have similar command sets and generally uniform 1.414 - interfaces.</para> 1.415 + <para id="x_6f8">Subversion est aujourd'hui le plus utilisé des 1.416 + système de gestion de révision Open Source. Bien qu'il y est des 1.417 + différences entre Mercurial et Subversion, faire la transition de 1.418 + l'un à l'autre n'est pas très difficile. Les deux disposent en effet 1.419 + de jeux de commandes similaires et d'interfaces uniformes.</para> 1.420 1.421 <sect2> 1.422 - <title>Philosophical differences</title> 1.423 - 1.424 - <para id="x_6f9">The fundamental difference between Subversion and 1.425 - Mercurial is of course that Subversion is centralized, while 1.426 - Mercurial is distributed. Since Mercurial stores all of a 1.427 - project's history on your local drive, it only needs to 1.428 - perform a network access when you want to explicitly 1.429 - communicate with another repository. In contrast, Subversion 1.430 - stores very little information locally, and the client must 1.431 - thus contact its server for many common operations.</para> 1.432 - 1.433 - <para id="x_6fa">Subversion more or less gets away without a well-defined 1.434 - notion of a branch: which portion of a server's namespace 1.435 - qualifies as a branch is a matter of convention, with the 1.436 - software providing no enforcement. Mercurial treats a 1.437 - repository as the unit of branch management.</para> 1.438 - 1.439 + <title>Différences philosophiques</title> 1.440 + 1.441 + <para id="x_6f9">La différence fondamentale entre Subversion et 1.442 + Mercurial est bien évidement que Subversion est centralisé, alors 1.443 + que Mercurial est distribué. Puisque que Mercurial enregistre tout 1.444 + l'historique d'un projet sur votre disque dur local, il n'a besoin 1.445 + d'effectuer des accès au réseau que lorsque vous lui demandez 1.446 + explicitement de discuter avec un autre dépôt, distant. Par contraste, 1.447 + Subversion ne conserve que peu d'information localement, et le client 1.448 + doit donc régulièrement discuter avec le serveur central pour la 1.449 + plupart des opérations communes.</para> 1.450 + 1.451 + <para id="x_6fa">Subversion s'en tire plus ou moins bien sans de notion 1.452 + de branche réellement bien définie : quel part de l'espace de nommage 1.453 + du serveur est une branche est une simple question de convention, le 1.454 + logiciel ne fournissant aucune sécurité à ce sujet. Mercurial considère 1.455 + un dépôt comme une branche.</para> 1.456 + 1.457 <sect3> 1.458 - <title>Scope of commands</title> 1.459 - 1.460 - <para id="x_6fb">Since Subversion doesn't know what parts of its 1.461 - namespace are really branches, it treats most commands as 1.462 - requests to operate at and below whatever directory you are 1.463 - currently visiting. For instance, if you run <command>svn 1.464 - log</command>, you'll get the history of whatever part of 1.465 - the tree you're looking at, not the tree as a whole.</para> 1.466 - 1.467 - <para id="x_6fc">Mercurial's commands behave differently, by defaulting 1.468 - to operating over an entire repository. Run <command>hg 1.469 - log</command> and it will tell you the history of the 1.470 - entire tree, no matter what part of the working directory 1.471 - you're visiting at the time. If you want the history of 1.472 - just a particular file or directory, simply supply it by 1.473 - name, e.g. <command>hg log src</command>.</para> 1.474 - 1.475 - <para id="x_6fd">From my own experience, this difference in default 1.476 - behaviors is probably the most likely to trip you up if you 1.477 - have to switch back and forth frequently between the two 1.478 - tools.</para> 1.479 + <title>Portée des commandes</title> 1.480 + 1.481 + <para id="x_6fb">Puisque que Subversion ne sait pas réellement 1.482 + quelle partie de son espace de nommage est en fait une branche, il 1.483 + traite la plupart des commandes comme des requêtes à exécuter sur le 1.484 + répertoire où vous vous situez, et ses sous répertoires. Par exemple, 1.485 + si vous exécuter <command>svn log</command>, vous verrez l'historique 1.486 + de la partie de l'arboresence où vous vous situez, et non la 1.487 + hiérarchie entière.</para> 1.488 + 1.489 + <para id="x_6fc">Les commandes de Mercurial ont un comportement 1.490 + différents, appliquant toutes commandes à l'ensemble de l'arboresence 1.491 + du dépôt. Exécutez la commande <command>hg log</command> et elle vous 1.492 + donnera l'historique de l'ensemble de l'arboresence, quelque soit le 1.493 + répertoire de cette dernière où vous vous situez à ce moment là. Si 1.494 + vous souhaitez l'historique d'une répertoire ou seulement d'un 1.495 + fichier, ajouter simplement le nom de celui-ci à la commande 1.496 + <command>hg log src</command>.</para> 1.497 + 1.498 + <para id="x_6fd">De ma propre expérience, cette différence dans leur 1.499 + comportement par défaut est probablement ce qui risque de vous 1.500 + surprendre si vous basculez régulièrement d'un outil à l'autre.</para> 1.501 </sect3> 1.502 1.503 <sect3> 1.504 - <title>Multi-user operation and safety</title> 1.505 - 1.506 - <para id="x_6fe">With Subversion, it is normal (though slightly frowned 1.507 - upon) for multiple people to collaborate in a single branch. 1.508 - If Alice and Bob are working together, and Alice commits 1.509 - some changes to their shared branch, Bob must update his 1.510 - client's view of the branch before he can commit. Since at 1.511 - this time he has no permanent record of the changes he has 1.512 - made, he can corrupt or lose his modifications during and 1.513 - after his update.</para> 1.514 - 1.515 - <para id="x_6ff">Mercurial encourages a commit-then-merge model instead. 1.516 - Bob commits his changes locally before pulling changes from, 1.517 - or pushing them to, the server that he shares with Alice. 1.518 - If Alice pushed her changes before Bob tries to push his, he 1.519 - will not be able to push his changes until he pulls hers, 1.520 - merges with them, and commits the result of the merge. If 1.521 - he makes a mistake during the merge, he still has the option 1.522 - of reverting to the commit that recorded his changes.</para> 1.523 - 1.524 - <para id="x_700">It is worth emphasizing that these are the common ways 1.525 - of working with these tools. Subversion supports a safer 1.526 - work-in-your-own-branch model, but it is cumbersome enough 1.527 - in practice to not be widely used. Mercurial can support 1.528 - the less safe mode of allowing changes to be pulled in and 1.529 - merged on top of uncommitted edits, but this is considered 1.530 - highly unusual.</para> 1.531 + <title>Opération multi utilisateur et sécurité</title> 1.532 + 1.533 + <para id="x_6fe">Avec Subversion, il est normal (bien que légèrement 1.534 + désapprouvée) que différentes personnes collaborent sur une seule 1.535 + branche. Si Alice et Bob travaillent ensemble, et Alice ajoute ses 1.536 + modications à leur branche partagée, Bob doit alors mettre à jour 1.537 + la vue de la banche de son client avant d'ajouter lui même ses 1.538 + modifications. Puisqu'il n'a, à ce moment, aucun enregistrement 1.539 + permanent des modifications qu'il a fait, il peut corrompre ou perdre 1.540 + des modifications pendant et après sa mise à jour.</para> 1.541 + 1.542 + <para id="x_6ff">Mercurial encourage, à l'inverse, un modèle 1.543 + "commit-puis-merge". Bob ajoute ses modifications de manière locale 1.544 + avant de récupérer les modifications d'Alice, ou d'envoyer les siennes 1.545 + au serveur qu'ils partagent. Si Alice envoye ses modifications avant 1.546 + que Alice n'envoye les siennes, il ne pourra envoyer ses 1.547 + modifications avant d'avoir récupérer les siennes. Si il fait une 1.548 + erreur lors de la fusion, il peut toujours à sa version d'origine, 1.549 + telle qu'elle a été enregistré.</para> 1.550 + 1.551 + <para id="x_700">Il est important de souligner qu'il s'agit de la 1.552 + manière habituelle de travailler avec ses outils. Subversion propose 1.553 + une manière plus sûr de travailler-dans-votre-propre-branche, mais il 1.554 + est assez complexe pour que, en pratique, il ne soit jamais utiliser. 1.555 + Mercurial propose un mode, un peu moyen sûr, mais permettant de 1.556 + récupérer des modifications par dessus des modifications non 1.557 + commitées, mais c'est considéré comme assez inhabituel.</para> 1.558 </sect3> 1.559 1.560 <sect3> 1.561 - <title>Published vs local changes</title> 1.562 - 1.563 - <para id="x_701">A Subversion <command>svn commit</command> command 1.564 - immediately publishes changes to a server, where they can be 1.565 - seen by everyone who has read access.</para> 1.566 - 1.567 - <para id="x_702">With Mercurial, commits are always local, and must be 1.568 - published via a <command>hg push</command> command 1.569 - afterwards.</para> 1.570 - 1.571 - <para id="x_703">Each approach has its advantages and disadvantages. The 1.572 - Subversion model means that changes are published, and hence 1.573 - reviewable and usable, immediately. On the other hand, this 1.574 - means that a user must have commit access to a repository in 1.575 - order to use the software in a normal way, and commit access 1.576 - is not lightly given out by most open source 1.577 - projects.</para> 1.578 - 1.579 - <para id="x_704">The Mercurial approach allows anyone who can clone a 1.580 - repository to commit changes without the need for someone 1.581 - else's permission, and they can then publish their changes 1.582 - and continue to participate however they see fit. The 1.583 - distinction between committing and pushing does open up the 1.584 - possibility of someone committing changes to their laptop 1.585 - and walking away for a few days having forgotten to push 1.586 - them, which in rare cases might leave collaborators 1.587 - temporarily stuck.</para> 1.588 + <title>Publication vs changement locaux</title> 1.589 + 1.590 + <para id="x_701">Une commande Subversion <command>svn 1.591 + commit</command> publie immédiatement les modifications sur le 1.592 + serveur, où ils peuvent être vu par n'importe qui doté du privilège 1.593 + de lecture.</para> 1.594 + 1.595 + <para id="x_702">Avec Mercurial, les modifications sont toujours 1.596 + enregistrées localement, et doivent être par la suite transférer par 1.597 + la commande <command>hg push</command>.</para> 1.598 + 1.599 + <para id="x_703">Chaque approche à ses avantages et ses désavantages. 1.600 + Le modèle Subversion implique que les modifications sont publiées, et 1.601 + donc disponible immédiatement. D'un autre coté, il implique aussi 1.602 + qu'un utilisateur doit avoir le droit d'écriture dans le dépôt pour 1.603 + permettre l'utiliser normalement, et ce privilège n'est pas concédé 1.604 + facilement par les projets Open Source.</para> 1.605 + 1.606 + <para id="x_704">L'approche de Mercurial permet à quiquonque de faire 1.607 + un clone du dépôt et d'y ajouter ses modifications sans jamais avoir 1.608 + besoin de la permission de quiquonque, et l'on peut même publier ses 1.609 + modifications et continuer à participer comme on le désir. La 1.610 + distinction entre les commits et le transfert de ces derniers ouvre 1.611 + la possibilité néanmoins que quelqu'un oublie pendant une longue 1.612 + période de transférer ses modifications, ce qui dans certains cas 1.613 + rares, peut piéger ses collaborateurs.</para> 1.614 </sect3> 1.615 </sect2> 1.616 1.617 <sect2> 1.618 - <title>Quick reference</title> 1.619 + <title>Références des commandes</title> 1.620 1.621 <table> 1.622 - <title>Subversion commands and Mercurial equivalents</title> 1.623 + <title>Commandes Subversion et leurs équivalents Mercurial</title> 1.624 <tgroup cols="3"> 1.625 <thead> 1.626 <row> 1.627 @@ -395,24 +407,24 @@ 1.628 <row> 1.629 <entry><command>svn cleanup</command></entry> 1.630 <entry>n/a</entry> 1.631 - <entry>No cleanup needed</entry> 1.632 + <entry>Aucun nettoyage nécessaire.</entry> 1.633 </row> 1.634 <row> 1.635 <entry><command>svn commit</command></entry> 1.636 <entry><command>hg commit</command>; <command>hg 1.637 push</command></entry> 1.638 - <entry><command>hg push</command> publishes after 1.639 - commit</entry> 1.640 + <entry><command>hg push</command> publie les modifications 1.641 + après leur enregistrement.</entry> 1.642 </row> 1.643 <row> 1.644 <entry><command>svn copy</command></entry> 1.645 <entry><command>hg clone</command></entry> 1.646 - <entry>To create a new branch</entry> 1.647 + <entry>Pour créer une nouvelle branche</entry> 1.648 </row> 1.649 <row> 1.650 <entry><command>svn copy</command></entry> 1.651 <entry><command>hg copy</command></entry> 1.652 - <entry>To copy files or directories</entry> 1.653 + <entry>Pour copier des fichiers ou des répertoires</entry> 1.654 </row> 1.655 <row> 1.656 <entry><command>svn delete</command> (<command>svn 1.657 @@ -444,13 +456,13 @@ 1.658 <row> 1.659 <entry><command>svn info</command></entry> 1.660 <entry><command>hg parents</command></entry> 1.661 - <entry>Shows what revision is checked out</entry> 1.662 + <entry>Affiche quelle révision est extraite</entry> 1.663 </row> 1.664 <row> 1.665 <entry><command>svn info</command></entry> 1.666 <entry><command>hg showconfig 1.667 paths.parent</command></entry> 1.668 - <entry>Shows what URL is checked out</entry> 1.669 + <entry>Affiche de quelle URL est extrait ce dépôt</entry> 1.670 </row> 1.671 <row> 1.672 <entry><command>svn list</command></entry> 1.673 @@ -470,7 +482,7 @@ 1.674 <row> 1.675 <entry><command>svn mkdir</command></entry> 1.676 <entry>n/a</entry> 1.677 - <entry>Mercurial does not track directories</entry> 1.678 + <entry>Mercurial ne versionne pas les répertoires</entry> 1.679 </row> 1.680 <row> 1.681 <entry><command>svn move</command> (<command>svn 1.682 @@ -505,29 +517,31 @@ 1.683 </sect1> 1.684 1.685 <sect1> 1.686 - <title>Useful tips for newcomers</title> 1.687 - 1.688 - <para id="x_705">Under some revision control systems, printing a diff for a 1.689 - single committed revision can be painful. For instance, with 1.690 - Subversion, to see what changed in revision 104654, you must 1.691 - type <command>svn diff -r104653:104654</command>. Mercurial 1.692 - eliminates the need to type the revision ID twice in this common 1.693 - case. For a plain diff, <command>hg export 104654</command>. For 1.694 - a log message followed by a diff, <command>hg log -r104654 1.695 - -p</command>.</para> 1.696 - 1.697 - <para id="x_706">When you run <command>hg status</command> without any 1.698 - arguments, it prints the status of the entire tree, with paths 1.699 - relative to the root of the repository. This makes it tricky to 1.700 - copy a file name from the output of <command>hg status</command> 1.701 - into the command line. If you supply a file or directory name 1.702 - to <command>hg status</command>, it will print paths relative to 1.703 - your current location instead. So to get tree-wide status from 1.704 - <command>hg status</command>, with paths that are relative to 1.705 - your current directory and not the root of the repository, feed 1.706 - the output of <command>hg root</command> into <command>hg 1.707 - status</command>. You can easily do this as follows on a 1.708 - Unix-like system:</para> 1.709 + <title>Conseils utiles pour les débutants</title> 1.710 + 1.711 + <para id="x_705">Avec la plupart des gestionnaire de révisions, afficher 1.712 + un diff associé à une révision peut être assez douloureux. Par exemple, 1.713 + avec Subversion, pour voir ce qui a été modifiée dans la révision 104654, 1.714 + vous devez saisir <command>svn diff -r104653:104654</command>. Mercurial 1.715 + élimine le besoin de saisir l'identifiant d'une révision deux fois dans 1.716 + ce cas classique. Pour un simple diff, <command>hg 1.717 + export<command></command> 1.718 + 104654</command> suffit. Pour l'entrée du journal suivi du diff, 1.719 + <command>hg log -r104654</command>. </para> 1.720 + 1.721 + <para id="x_706">Quand vous exécutez la commande <command>hg status</command> 1.722 + sans aucun arguments, elle affiche l'état de l'ensemble de l'arboresence, 1.723 + avec des chemins relatifs partant de la raçine du dépôt. Ceci rend 1.724 + difficile de copier un nom de fichier depuis la sortie de la commande 1.725 + <command>hg status</command> dans une autre ligne de commande. Si vous 1.726 + fournissez un fichier ou un répertoire à la commande <command>hg 1.727 + status</command>, elle va afficher les chemins relatif depuis votre 1.728 + répertoire courant à la place. Ainsi, pour avoir un état sur l'ensemble 1.729 + de l'arboresence à l'aide de <command>hg status</command>, avec des 1.730 + chemins relatifs à votre répertoire courant, et non le raçine du dépôt, 1.731 + ajoutez la sortie de <command>hg root</command> à la commande 1.732 + <command>hg status</command>. Vous pouvez le faire aisément sur un 1.733 + système Unix ainsi :</para> 1.734 1.735 <screen><prompt>$</prompt> <userinput>hg status `hg root`</userinput></screen> 1.736 </sect1>