hgbook
diff fr/ch05-daily.xml @ 988:72de97557f11
French translation : 75% of ch05-daily translated
author | Frédéric Bouquet <youshe.jaalon@gmail.com> |
---|---|
date | Thu Sep 10 01:08:16 2009 +0200 (2009-09-10) |
parents | f0110009e946 |
children | a3a9eabfe2a4 |
line diff
1.1 --- a/fr/ch05-daily.xml Wed Sep 09 16:07:36 2009 +0200 1.2 +++ b/fr/ch05-daily.xml Thu Sep 10 01:08:16 2009 +0200 1.3 @@ -7,513 +7,528 @@ 1.4 <sect1> 1.5 <title>Telling Mercurial which files to track</title> 1.6 1.7 - <para id="x_1a3">Mercurial does not work with files in your repository unless 1.8 - you tell it to manage them. The <command role="hg-cmd">hg 1.9 - status</command> command will tell you which files Mercurial 1.10 - doesn't know about; it uses a 1.11 - <quote><literal>?</literal></quote> to display such 1.12 - files.</para> 1.13 - 1.14 - <para id="x_1a4">To tell Mercurial to track a file, use the <command 1.15 - role="hg-cmd">hg add</command> command. Once you have added a 1.16 - file, the entry in the output of <command role="hg-cmd">hg 1.17 - status</command> for that file changes from 1.18 - <quote><literal>?</literal></quote> to 1.19 + <para id="x_1a3">Mercurial ne fonctionne pas avec les fichiers de votre 1.20 + dépôt tant que vous ne lui avez pas dit de les gérer. La commande 1.21 + <command role="hg-cmd">hg status</command> vous dira quels fichier sont 1.22 + inconnus de Mercurial. Il utilise un 1.23 + <quote><literal>?</literal></quote> pour montrer ces fichiers.</para> 1.24 + 1.25 + <para id="x_1a4">Pour informer Mercurial de suivre un fichier, utilisez 1.26 + la commande <command role="hg-cmd">hg add</command>. Une fois que vous 1.27 + avez ajouté un fichier, la ligne correspondante à ce fichier dans la 1.28 + sortie de <command role="hg-cmd">hg status</command> change de 1.29 + <quote><literal>?</literal></quote> à 1.30 <quote><literal>A</literal></quote>.</para> 1.31 1.32 - &interaction.daily.files.add; 1.33 - 1.34 - <para id="x_1a5">After you run a <command role="hg-cmd">hg commit</command>, 1.35 - the files that you added before the commit will no longer be 1.36 - listed in the output of <command role="hg-cmd">hg 1.37 - status</command>. The reason for this is that by default, <command 1.38 - role="hg-cmd">hg status</command> only tells you about 1.39 - <quote>interesting</quote> files&emdash;those that you have (for 1.40 - example) modified, removed, or renamed. If you have a repository 1.41 - that contains thousands of files, you will rarely want to know 1.42 - about files that Mercurial is tracking, but that have not 1.43 - changed. (You can still get this information; we'll return to 1.44 - this later.)</para> 1.45 - 1.46 - <para id="x_1a6">Once you add a file, Mercurial doesn't do anything with it 1.47 - immediately. Instead, it will take a snapshot of the file's 1.48 - state the next time you perform a commit. It will then continue 1.49 - to track the changes you make to the file every time you commit, 1.50 - until you remove the file.</para> 1.51 - 1.52 - <sect2> 1.53 - <title>Explicit versus implicit file naming</title> 1.54 - 1.55 - <para id="x_1a7">A useful behavior that Mercurial has is that if you pass 1.56 - the name of a directory to a command, every Mercurial command 1.57 - will treat this as <quote>I want to operate on every file in 1.58 - this directory and its subdirectories</quote>.</para> 1.59 + &interaction.daily.files.add; 1.60 + 1.61 + <para id="x_1a5">Après avoir exécuté un <command role="hg-cmd">hg 1.62 + commit</command>, les fichiers que vous avez ajouté avant le commit 1.63 + ne seront plus listé dans la sortie de <command role="hg-cmd">hg 1.64 + status</command>. La raison de ceci est que par défaut, <command 1.65 + role="hg-cmd">hg status</command> ne vous montre que les fichiers 1.66 + <quote>intéressants</quote> &emdash;ceux que vous avez (par exemple) 1.67 + modifiés, supprimés ou renommés. Si vous avez un dépôt qui contient un 1.68 + millier de fichiers, vous ne voudrez certainement que rarement entendre 1.69 + parler des fichiers que Mercurial suit, mais qui n'ont pas changés. 1.70 + (Vous pouvez quand même avoir cette information, nous y reviendrons 1.71 + plus tard.)</para> 1.72 + 1.73 + <para id="x_1a6">Une fois que vous ajoutez un fichier, Mercurial ne fait 1.74 + rien du tout avec celui-ci immédiatement. A lieu de ça, il va prendre 1.75 + un "snapshot" de l'état du fichier la prochaine fois que vous 1.76 + exécuterez un commit. Il continuera ensuite à suivre les changements 1.77 + que vous avez fait au fichier chaque fois que vous committerez, jusqu'à 1.78 + ce que vous supprimiez le fichier.</para> 1.79 + 1.80 + <sect2> 1.81 + <title>Nommage des fichiers explicite versus implicite</title> 1.82 + 1.83 + <para id="x_1a7">Un comportement utile que Mercurial possède est que si 1.84 + vous passez le nom d'un répertoire à une commande, toute commande 1.85 + Mercurial la traitera comme <quote>Je veux opérer sur chaque fichier 1.86 + dans ce répertoire et ses sous-répertoires</quote>.</para> 1.87 1.88 &interaction.daily.files.add-dir; 1.89 1.90 - <para id="x_1a8">Notice in this example that Mercurial printed 1.91 - the names of the files it added, whereas it didn't do so when 1.92 - we added the file named <filename>myfile.txt</filename> in the 1.93 - earlier example.</para> 1.94 - 1.95 - <para id="x_1a9">What's going on is that in the former case, we explicitly 1.96 - named the file to add on the command line. The assumption 1.97 - that Mercurial makes in such cases is that we know what we 1.98 - are doing, and it doesn't print any output.</para> 1.99 - 1.100 - <para id="x_1aa">However, when we <emphasis>imply</emphasis> the names of 1.101 - files by giving the name of a directory, Mercurial takes the 1.102 - extra step of printing the name of each file that it does 1.103 - something with. This makes it more clear what is happening, 1.104 - and reduces the likelihood of a silent and nasty surprise. 1.105 - This behavior is common to most Mercurial commands.</para> 1.106 - </sect2> 1.107 - 1.108 - <sect2> 1.109 - <title>Mercurial tracks files, not directories</title> 1.110 - 1.111 - <para id="x_1ab">Mercurial does not track directory information. Instead, 1.112 - it tracks the path to a file. Before creating a file, it 1.113 - first creates any missing directory components of the path. 1.114 - After it deletes a file, it then deletes any empty directories 1.115 - that were in the deleted file's path. This sounds like a 1.116 - trivial distinction, but it has one minor practical 1.117 - consequence: it is not possible to represent a completely 1.118 - empty directory in Mercurial.</para> 1.119 - 1.120 - <para id="x_1ac">Empty directories are rarely useful, and there are 1.121 - unintrusive workarounds that you can use to achieve an 1.122 - appropriate effect. The developers of Mercurial thus felt 1.123 - that the complexity that would be required to manage empty 1.124 - directories was not worth the limited benefit this feature 1.125 - would bring.</para> 1.126 - 1.127 - <para id="x_1ad">If you need an empty directory in your repository, there 1.128 - are a few ways to achieve this. One is to create a directory, 1.129 - then <command role="hg-cmd">hg add</command> a 1.130 - <quote>hidden</quote> file to that directory. On Unix-like 1.131 - systems, any file name that begins with a period 1.132 - (<quote><literal>.</literal></quote>) is treated as hidden by 1.133 - most commands and GUI tools. This approach is illustrated 1.134 - below.</para> 1.135 - 1.136 -&interaction.daily.files.hidden; 1.137 - 1.138 - <para id="x_1ae">Another way to tackle a need for an empty directory is to 1.139 - simply create one in your automated build scripts before they 1.140 - will need it.</para> 1.141 + <para id="x_1a8">Remarquez que dans cet exemple, Mercurial affiche le 1.142 + nom des fichiers qu'il a ajouté, alors qu'il ne l'a pas fait lorsque 1.143 + nous avons ajouté le fichier nommé <filename>myfile.txt</filename> 1.144 + dans l'exemple précédent.</para> 1.145 + 1.146 + <para id="x_1a9">Ce qu'il se passe est que dans le premier cas, nous 1.147 + avons nommé explicitement le fichier à ajouter sur la ligne de 1.148 + commande. La supposition que Mercurial fait dans ces cas est que nous 1.149 + savons ce que nous faisons, il n'affiche dont rien en sortie.</para> 1.150 + 1.151 + <para id="x_1aa">Cependant, lorsque nous avons 1.152 + <emphasis>implicitement</emphasis> donné les fichiers à l'aide du nom 1.153 + d'un répertoire, Mercurial prend le l'initiative d'afficher le nom de 1.154 + chaque fichier avec lequel il fait quelque chose. Ceci clarifie ce 1.155 + qu'il se passe, et réduit la probabilité d'une surprise silencieuse 1.156 + et désagréable. Ce comportement est commun à la plupart des commandes 1.157 + Mercurial.</para> 1.158 + </sect2> 1.159 + <sect2> 1.160 + <title>Mercurial suit les fichiers, pas les répertoires</title> 1.161 + 1.162 + <para id="x_1ab">Mercurial ne suit pas les informations sur les 1.163 + répertoire. En contrepartie, il suit le chemin vers un fichier. Avant 1.164 + de créer un fichier, il crée au préalable les répertoires manquants 1.165 + dans le chemin. Après avoir supprimé un fichier, il supprime chaque 1.166 + répertoire vide qui apparaît dans le chemin du fichier. Ceci apparaît 1.167 + comme une distinction triviale, cependant, ceci a une conséquence 1.168 + pratique mineure : il n'est pas possible de représenter un répertoire 1.169 + totalement vide dans Mercurial.</para> 1.170 + 1.171 + <para id="x_1ac">Les répertoires vides sont rarement utiles. Il existe 1.172 + des solutions alternatives et non intrusives que vous pouvez utiliser 1.173 + pour obtenir l'effet approprié. Les développeurs de Mercurial ont 1.174 + ainsi pensé que la complexité requise pour gérer les répertoires 1.175 + n'était pas aussi importante que le bénéfice que cette fonctionnalité 1.176 + apporterait.</para> 1.177 + 1.178 + <para id="x_1ad">Si vous avez besoin d'un répertoire vide dans votre 1.179 + dépôt, il existe quelques façons d'y arriver. L'une d'elles est de 1.180 + créer un répertoire et d'ensuite, faire un <command role="hg-cmd">hg 1.181 + add</command> sur un fichier <quote>hidden</quote> file dans ce 1.182 + répertoire. Sur les fichiers de type Unix, tout fichier dont le nom 1.183 + commence avec un point (<quote><literal>.</literal></quote>) est 1.184 + considéré comme caché par la plupart des commandes et outils 1.185 + graphiques. Cette approche est illustré ci-après.</para> 1.186 + 1.187 + &interaction.daily.files.hidden; 1.188 + 1.189 + <para id="x_1ae">Une autre façon de s'attaquer au besoin d'un 1.190 + répertoire vide est de simplement en créer un dans vos scripts 1.191 + de construction avant qu'ils n'en aient le besoin.</para> 1.192 </sect2> 1.193 </sect1> 1.194 1.195 <sect1> 1.196 - <title>How to stop tracking a file</title> 1.197 - 1.198 - <para id="x_1af">Once you decide that a file no longer belongs in 1.199 - your repository, use the <command role="hg-cmd">hg 1.200 - remove</command> command. This deletes the file, and tells 1.201 - Mercurial to stop tracking it (which will occur at the next 1.202 - commit). A removed file is represented in the output of 1.203 - <command role="hg-cmd">hg status</command> with a 1.204 + <title>Comment arrêter de suivre un fichier</title> 1.205 + 1.206 + <para id="x_1af">Une fois que vous décidez qu'un fichier n'appartient 1.207 + plus à votre dépôt, utilisez la commande <command role="hg-cmd">hg 1.208 + remove</command>. Ceci supprime le fichier et informe Mercurial 1.209 + d'arrêter de le suivre (ce qui prendra effet lors du prochain commit). 1.210 + Un fichier supprimé est représenté dans la sortie de la commande 1.211 + <command role="hg-cmd">hg status</command> par un 1.212 <quote><literal>R</literal></quote>.</para> 1.213 1.214 &interaction.daily.files.remove; 1.215 1.216 - <para id="x_1b0">After you <command role="hg-cmd">hg remove</command> a file, 1.217 - Mercurial will no longer track changes to that file, even if you 1.218 - recreate a file with the same name in your working directory. 1.219 - If you do recreate a file with the same name and want Mercurial 1.220 - to track the new file, simply <command role="hg-cmd">hg 1.221 - add</command> it. Mercurial will know that the newly added 1.222 - file is not related to the old file of the same name.</para> 1.223 - 1.224 - <sect2> 1.225 - <title>Removing a file does not affect its history</title> 1.226 - 1.227 - <para id="x_1b1">It is important to understand that removing a file has 1.228 - only two effects.</para> 1.229 + <para id="x_1b0">Après avoir fait un <command role="hg-cmd">hg 1.230 + remove</command> sur un fichier, Mercurial ne suivra plus aucun 1.231 + changement sur ce fichier, même si vous recréez un fichier avec le même 1.232 + nom dans le répertoire de travail. Si vous recréez un fichier avec le 1.233 + même nom et que vous désirez que Mercurial suive ce dernier, faite 1.234 + simplement un <command role="hg-cmd">hg add</command> sur celui-ci. 1.235 + Mercurial saura alors que le nouveau fichier ne fait pas référence à 1.236 + l'ancien fichier qui portait le même nom.</para> 1.237 + 1.238 + <sect2> 1.239 + <title>Supprimer un fichier n'affecte pas son historique</title> 1.240 + 1.241 + <para id="x_1b1">Il est important de comprendre que supprmer un fichier 1.242 + n'a que deux effets.</para> 1.243 + 1.244 <itemizedlist> 1.245 - <listitem><para id="x_1b2">It removes the current version of the file 1.246 - from the working directory.</para> 1.247 - </listitem> 1.248 - <listitem><para id="x_1b3">It stops Mercurial from tracking changes to 1.249 - the file, from the time of the next commit.</para> 1.250 - </listitem></itemizedlist> 1.251 - <para id="x_1b4">Removing a file <emphasis>does not</emphasis> in any way 1.252 - alter the <emphasis>history</emphasis> of the file.</para> 1.253 - 1.254 - <para id="x_1b5">If you update the working directory to a 1.255 - changeset that was committed when it was still tracking a file 1.256 - that you later removed, the file will reappear in the working 1.257 - directory, with the contents it had when you committed that 1.258 - changeset. If you then update the working directory to a 1.259 - later changeset, in which the file had been removed, Mercurial 1.260 - will once again remove the file from the working 1.261 - directory.</para> 1.262 - </sect2> 1.263 - 1.264 - <sect2> 1.265 - <title>Missing files</title> 1.266 - 1.267 - <para id="x_1b6">Mercurial considers a file that you have deleted, but not 1.268 - used <command role="hg-cmd">hg remove</command> to delete, to 1.269 - be <emphasis>missing</emphasis>. A missing file is 1.270 - represented with <quote><literal>!</literal></quote> in the 1.271 - output of <command role="hg-cmd">hg status</command>. 1.272 - Mercurial commands will not generally do anything with missing 1.273 - files.</para> 1.274 + <listitem><para id="x_1b2">Il supprime la version actuelle de ce 1.275 + fichier du répertoire de travail.</para> 1.276 + </listitem> 1.277 + <listitem><para id="x_1b3">Il arrête, à partir du prochain commit, le 1.278 + suivi de Mercurial sur les changements qui ont lieu sur ce 1.279 + fichier.</para> 1.280 + </listitem></itemizedlist> 1.281 + 1.282 + <para id="x_1b4">Supprimer un fichier <emphasis>n'</emphasis>affecte en 1.283 + <emphasis>aucun</emphasis> cas l'<emphasis>historique</emphasis> du 1.284 + fichier.</para> 1.285 + 1.286 + <para id="x_1b5">Si vous mettez à jour le répertoire de travail à un 1.287 + changeset qui a été commité alors que le fichier que vous venez de 1.288 + supprimer était encore suivi, ce fichier réaparaittra dans le 1.289 + répertoire de travail, avec le contenu qu'il avait lorsque vous aviez 1.290 + commité ce changeset. Si vous mettez à jour (update) le répertoire de 1.291 + travail à un changeset ultérieur, dans lequel le fichier a été 1.292 + supprimé, Mercurial supprimera une nouvelle fois le fichier du 1.293 + répertoire de travail.</para> 1.294 + </sect2> 1.295 + 1.296 + <sect2> 1.297 + <title>Fichier manquants</title> 1.298 + 1.299 + <para id="x_1b6">Mercurial considère qu'un fichier que vous avez 1.300 + supprimé sans utiliser<command role="hg-cmd">hg remove</command> 1.301 + comme étant <emphasis>manquant</emphasis>. Un fichier manquant est 1.302 + représenté avec un <quote><literal>!</literal></quote> en sortie de 1.303 + <command role="hg-cmd">hg status</command>. 1.304 + Les commandes Mercurial ne feront rien avec les fichiers 1.305 + manquants.</para> 1.306 1.307 &interaction.daily.files.missing; 1.308 1.309 - <para id="x_1b7">If your repository contains a file that <command 1.310 - role="hg-cmd">hg status</command> reports as missing, and 1.311 - you want the file to stay gone, you can run <command 1.312 - role="hg-cmd">hg remove <option 1.313 - role="hg-opt-remove">--after</option></command> at any 1.314 - time later on, to tell Mercurial that you really did mean to 1.315 - remove the file.</para> 1.316 + <para id="x_1b7">Si votre dépôt contient un fichier que <command 1.317 + role="hg-cmd">hg status</command> repporte comme manquant, et que 1.318 + vous voulez que ce fichier reste supprimé, vous pouvez exécuter 1.319 + <command role="hg-cmd">hg remove <option 1.320 + role="hg-opt-remove">--after</option></command> à tout moment 1.321 + pour dire à Mercurial que vous aviez bien voulu supprimer ce 1.322 + fichier.</para> 1.323 1.324 &interaction.daily.files.remove-after; 1.325 1.326 - <para id="x_1b8">On the other hand, if you deleted the missing file by 1.327 - accident, give <command role="hg-cmd">hg revert</command> the 1.328 - name of the file to recover. It will reappear, in unmodified 1.329 - form.</para> 1.330 + <para id="x_1b8">D'un autre coté, si vous avez supprimé le fichier 1.331 + manquant par accident, donnez à la commande <command role="hg-cmd">hg 1.332 + revert</command> le nom du fichier à retrouver. Il réaparaitra dans 1.333 + sa forme non modifiée.</para> 1.334 1.335 &interaction.daily.files.recover-missing; 1.336 - </sect2> 1.337 - 1.338 - <sect2> 1.339 - <title>Aside: why tell Mercurial explicitly to remove a 1.340 - file?</title> 1.341 - 1.342 - <para id="x_1b9">You might wonder why Mercurial requires you to explicitly 1.343 - tell it that you are deleting a file. Early during the 1.344 - development of Mercurial, it let you delete a file however you 1.345 - pleased; Mercurial would notice the absence of the file 1.346 - automatically when you next ran a <command role="hg-cmd">hg 1.347 - commit</command>, and stop tracking the file. In practice, 1.348 - this made it too easy to accidentally remove a file without 1.349 - noticing.</para> 1.350 - </sect2> 1.351 - 1.352 - <sect2> 1.353 - <title>Useful shorthand&emdash;adding and removing files in one 1.354 - step</title> 1.355 - 1.356 - <para id="x_1ba">Mercurial offers a combination command, <command 1.357 - role="hg-cmd">hg addremove</command>, that adds untracked 1.358 - files and marks missing files as removed.</para> 1.359 + 1.360 + </sect2> 1.361 + 1.362 + <sect2> 1.363 + <title>Entre nous : Pourquoi dire explicitement à Mercurial de supprimer un 1.364 + fichier ?</title> 1.365 + 1.366 + <para id="x_1b9">Vous pourriez vous demander pourquoi il est nécessaire 1.367 + de dire exprécement à Mercurial que vous souhaitez supprimer un 1.368 + fichier. Au début du développement de Mercurial, celui ci vous 1.369 + laissait pourtant supprimer un fichier sans soucis ; Mercurial vous 1.370 + aurait automatiquement informé de l'absence du fichier lorsque vous 1.371 + auriez lancé un <command role="hg-cmd">hg commit</command> et arrêté 1.372 + de le suivre. En pratique, ceci a montré qu'il était trop facile de 1.373 + supprimer accidentellement un fichier sans le remarquer.</para> 1.374 + </sect2> 1.375 + 1.376 + <sect2> 1.377 + <title>Racourcis utile&emdash;ajouter et supprimer des fichiers en une 1.378 + seule étape.</title> 1.379 + 1.380 + <para id="x_1ba">Mercurial offre une commande combinée, <command 1.381 + role="hg-cmd">hg addremove</command>, qui ajoute les fichiers non 1.382 + suivis et marque les fichiers manquants comme supprimés.</para> 1.383 1.384 &interaction.daily.files.addremove; 1.385 1.386 - <para id="x_1bb">The <command role="hg-cmd">hg commit</command> command 1.387 - also provides a <option role="hg-opt-commit">-A</option> 1.388 - option that performs this same add-and-remove, immediately 1.389 - followed by a commit.</para> 1.390 + <para id="x_1bb">La commande <command role="hg-cmd">hg commit</command> 1.391 + fournit aussi une option <option role="hg-opt-commit">-A</option> qui 1.392 + exécute le même ajouter-et-supprimer, immédiatement suivi d'un 1.393 + commit.</para> 1.394 1.395 &interaction.daily.files.commit-addremove; 1.396 + 1.397 </sect2> 1.398 </sect1> 1.399 1.400 <sect1 id="chap:daily.copy"> 1.401 - <title>Copying files</title> 1.402 - 1.403 - <para id="x_1bc">Mercurial provides a <command role="hg-cmd">hg 1.404 - copy</command> command that lets you make a new copy of a 1.405 - file. When you copy a file using this command, Mercurial makes 1.406 - a record of the fact that the new file is a copy of the original 1.407 - file. It treats these copied files specially when you merge 1.408 - your work with someone else's.</para> 1.409 - 1.410 - <sect2> 1.411 - <title>The results of copying during a merge</title> 1.412 - 1.413 - <para id="x_1bd">What happens during a merge is that changes 1.414 - <quote>follow</quote> a copy. To best illustrate what this 1.415 - means, let's create an example. We'll start with the usual 1.416 - tiny repository that contains a single file.</para> 1.417 + <title>Copier des fichiers</title> 1.418 + 1.419 + <para id="x_1bc">Mercurial fournit une commande <command role="hg-cmd">hg 1.420 + copy</command> qui vous permet de faire une nouvelle copie d'un 1.421 + fichier. Lorsque vous copiez un fichier en utilisant cette commande, 1.422 + Mercurial crée un enregistrement du fait que ce nouveau fichier est une 1.423 + copie du fichier originel. Il traite ces fichiers copiés spécialement 1.424 + lorsque vous faites une fusion (merge) de votre travail avec quelqu'un 1.425 + d'autre.</para> 1.426 + 1.427 + <sect2> 1.428 + <title>Les résultat d'une copie durant une fusion (merge)</title> 1.429 + 1.430 + <para id="x_1bd">Ce qu'il se passe durant une fusion (merge) est que 1.431 + les changements <quote>suivent</quote> une copie. Pour illustrer ce 1.432 + que ça veut dire de la meilleure façon, créons un exemple. Nous 1.433 + allons commencer avec le mini dépôt usuel qui contient un simple 1.434 + fichier.</para> 1.435 1.436 &interaction.daily.copy.init; 1.437 1.438 - <para id="x_1be">We need to do some work in 1.439 - parallel, so that we'll have something to merge. So let's 1.440 - clone our repository.</para> 1.441 + <para id="x_1be">Nous devons faire du travail en parallèle, ainsi, 1.442 + nous aurons quelque chose à fusionner (merge). Donc clonons notre 1.443 + dépôt.</para> 1.444 1.445 &interaction.daily.copy.clone; 1.446 1.447 - <para id="x_1bf">Back in our initial repository, let's use the <command 1.448 - role="hg-cmd">hg copy</command> command to make a copy of 1.449 - the first file we created.</para> 1.450 + <para id="x_1bf">De retour dans notre dépôt initial, utilisons la 1.451 + commande <command role="hg-cmd">hg copy</command> pour faire une 1.452 + copie du premier fichier que nous avons créé.</para> 1.453 1.454 &interaction.daily.copy.copy; 1.455 1.456 - <para id="x_1c0">If we look at the output of the <command role="hg-cmd">hg 1.457 - status</command> command afterwards, the copied file looks 1.458 - just like a normal added file.</para> 1.459 + <para id="x_1c0">Si nous regardons ensuite à la sortie de la commande 1.460 + <command role="hg-cmd">hg status</command>, les fichiers copiés 1.461 + ont l'air de fichiers normalement ajoutés.</para> 1.462 1.463 &interaction.daily.copy.status; 1.464 1.465 - <para id="x_1c1">But if we pass the <option 1.466 - role="hg-opt-status">-C</option> option to <command 1.467 - role="hg-cmd">hg status</command>, it prints another line of 1.468 - output: this is the file that our newly-added file was copied 1.469 - <emphasis>from</emphasis>.</para> 1.470 + <para id="x_1c1">Mais si nous passons l'option <option 1.471 + role="hg-opt-status">-C</option> à <command role="hg-cmd">hg 1.472 + status</command>, il affiche une autre ligne de sortie : il s'agit 1.473 + du fichier <emphasis>source</emphasis> pour notre copie.</para> 1.474 1.475 &interaction.daily.copy.status-copy; 1.476 1.477 - <para id="x_1c2">Now, back in the repository we cloned, let's make a change 1.478 - in parallel. We'll add a line of content to the original file 1.479 - that we created.</para> 1.480 + <para id="x_1c2">Maintenant, de retour dans le dépôt que nous avons 1.481 + cloné, et créons un changement en parallèle. Nous allons ajouter une 1.482 + ligne de contenu au fichier original qui a été créé.</para> 1.483 1.484 &interaction.daily.copy.other; 1.485 1.486 - <para id="x_1c3">Now we have a modified <filename>file</filename> in this 1.487 - repository. When we pull the changes from the first 1.488 - repository, and merge the two heads, Mercurial will propagate 1.489 - the changes that we made locally to <filename>file</filename> 1.490 - into its copy, <filename>new-file</filename>.</para> 1.491 + <para id="x_1c3">Maintenant, nous avons un fichier 1.492 + <filename>file</filename> modifié dans ce dépôt. Lorsque nous 1.493 + récupérons (pull) les changements depuis le premier répertoire et 1.494 + fusionnons (merge) les deux HEADS, Mercurial propagera les 1.495 + changements que nous avons fait localement au fichier 1.496 + <filename>file</filename> dans sa copie 1.497 + <filename>new-file</filename>.</para> 1.498 1.499 &interaction.daily.copy.merge; 1.500 - </sect2> 1.501 - 1.502 + 1.503 + </sect2> 1.504 <sect2 id="sec:daily:why-copy"> 1.505 - <title>Why should changes follow copies?</title> 1.506 - 1.507 - <para id="x_1c4">This behavior&emdash;of changes to a file 1.508 - propagating out to copies of the file&emdash;might seem 1.509 - esoteric, but in most cases it's highly desirable.</para> 1.510 - 1.511 - <para id="x_1c5">First of all, remember that this propagation 1.512 - <emphasis>only</emphasis> happens when you merge. So if you 1.513 - <command role="hg-cmd">hg copy</command> a file, and 1.514 - subsequently modify the original file during the normal course 1.515 - of your work, nothing will happen.</para> 1.516 - 1.517 - <para id="x_1c6">The second thing to know is that modifications will only 1.518 - propagate across a copy as long as the changeset that you're 1.519 - merging changes from <emphasis>hasn't yet seen</emphasis> 1.520 - the copy.</para> 1.521 - 1.522 - <para id="x_1c7">The reason that Mercurial does this is as follows. Let's 1.523 - say I make an important bug fix in a source file, and commit 1.524 - my changes. Meanwhile, you've decided to <command 1.525 - role="hg-cmd">hg copy</command> the file in your repository, 1.526 - without knowing about the bug or having seen the fix, and you 1.527 - have started hacking on your copy of the file.</para> 1.528 - 1.529 - <para id="x_1c8">If you pulled and merged my changes, and Mercurial 1.530 - <emphasis>didn't</emphasis> propagate changes across copies, 1.531 - your new source file would now contain the bug, and unless you 1.532 - knew to propagate the bug fix by hand, the bug would 1.533 - <emphasis>remain</emphasis> in your copy of the file.</para> 1.534 - 1.535 - <para id="x_1c9">By automatically propagating the change that fixed the bug 1.536 - from the original file to the copy, Mercurial prevents this 1.537 - class of problem. To my knowledge, Mercurial is the 1.538 - <emphasis>only</emphasis> revision control system that 1.539 - propagates changes across copies like this.</para> 1.540 - 1.541 - <para id="x_1ca">Once your change history has a record that the copy and 1.542 - subsequent merge occurred, there's usually no further need to 1.543 - propagate changes from the original file to the copied file, 1.544 - and that's why Mercurial only propagates changes across copies 1.545 - at the first merge, and not afterwards.</para> 1.546 - </sect2> 1.547 - 1.548 - <sect2> 1.549 - <title>How to make changes <emphasis>not</emphasis> follow a 1.550 - copy</title> 1.551 - 1.552 - <para id="x_1cb">If, for some reason, you decide that this business of 1.553 - automatically propagating changes across copies is not for 1.554 - you, simply use your system's normal file copy command (on 1.555 - Unix-like systems, that's <command>cp</command>) to make a 1.556 - copy of a file, then <command role="hg-cmd">hg add</command> 1.557 - the new copy by hand. Before you do so, though, please do 1.558 - reread <xref linkend="sec:daily:why-copy"/>, and make 1.559 - an informed 1.560 - decision that this behavior is not appropriate to your 1.561 - specific case.</para> 1.562 - 1.563 - </sect2> 1.564 - <sect2> 1.565 - <title>Behavior of the <command role="hg-cmd">hg copy</command> 1.566 - command</title> 1.567 - 1.568 - <para id="x_1cc">When you use the <command role="hg-cmd">hg copy</command> 1.569 - command, Mercurial makes a copy of each source file as it 1.570 - currently stands in the working directory. This means that if 1.571 - you make some modifications to a file, then <command 1.572 - role="hg-cmd">hg copy</command> it without first having 1.573 - committed those changes, the new copy will also contain the 1.574 - modifications you have made up until that point. (I find this 1.575 - behavior a little counterintuitive, which is why I mention it 1.576 - here.)</para> 1.577 - 1.578 - <para id="x_1cd">The <command role="hg-cmd">hg copy</command> 1.579 - command acts similarly to the Unix <command>cp</command> 1.580 - command (you can use the <command role="hg-cmd">hg 1.581 - cp</command> alias if you prefer). We must supply two or 1.582 - more arguments, of which the last is treated as the 1.583 - <emphasis>destination</emphasis>, and all others are 1.584 - <emphasis>sources</emphasis>.</para> 1.585 - 1.586 - <para id="x_685">If you pass <command role="hg-cmd">hg copy</command> a 1.587 - single file as the source, and the destination does not exist, 1.588 - it creates a new file with that name.</para> 1.589 + <title>Pourquoi les changements devraient suivre les copies ?</title> 1.590 + 1.591 + <para id="x_1c4">Ce comportement&emdash;des changements d'un fichiers 1.592 + qui se propagent aux copies de ce fichier&emdash;peut sembler 1.593 + ésotérique, mais, dans la plupart des cas, c'est hautement 1.594 + désirable.</para> 1.595 + 1.596 + <para id="x_1c5">Pour commencer, souvenez vous que cette propagation 1.597 + a lieue <emphasis>seulement</emphasis> lors des fusions (merge). 1.598 + Donc, si vous faites un <command role="hg-cmd">hg copy</command> sur 1.599 + un fichier, et par la suite modifiez le fichier original durant le 1.600 + cours normal de votre travail, rien n'a lieu.</para> 1.601 + 1.602 + <para id="x_1c6">La deuxième chose à savoir c'est que les modifications 1.603 + ne se propageront à travers une copie que si le changeset à partir 1.604 + duquel vous faites une fusion (merge) <emphasis>n'a pas encore 1.605 + vu</emphasis> la copie.</para> 1.606 + 1.607 + <para id="x_1c7">La raison pour laquelle Mercurial fait ainsi est une 1.608 + règle. Disons que je corrige un important bug dans un fichier source 1.609 + et commit mes changements. Pendant ce temps, vous avez décidé de 1.610 + faire un <command role="hg-cmd">hg copy</command> du fichier dans 1.611 + votre dépôt, sans rien savoir au sujet du bug ou sans avoir rien vu à 1.612 + propos de la correction, et vous avez commencé à "hacker" sur votre 1.613 + copie du fichier.</para> 1.614 + 1.615 + <para id="x_1c8">Si vous aviez récupéré (pull) et fusionné (merge) mes 1.616 + changements, et que Mercurial <emphasis>n'avait pas</emphasis> 1.617 + propagé les changements à travers les copies, votre nouveau fichier 1.618 + source contiendrait maintenant le bug, et à moins que vous sachiez 1.619 + qu'il faille propager la correction du bug à la main, le bug aurait 1.620 + <emphasis>subsisté</emphasis> dans votre copie du fichier.</para> 1.621 + 1.622 + <para id="x_1c9">En propageant automatiquement les changements qui 1.623 + fixent les bugs à partir du fichier original vers les copies, 1.624 + Mercurial prévient ce type de problèmes. A ma connaissance, Mercurial 1.625 + est le <emphasis>seul</emphasis> système de gestion de révisions qui 1.626 + propage les changements à travers les copies comme ceci.</para> 1.627 + 1.628 + <para id="x_1ca">Une fois que votre historique des changements a un 1.629 + enregistrement concernant une copie et une fusion postérieure qui a 1.630 + eu lieue, il n'y a d'habitude pas d'autre besoin de propager les 1.631 + changements du fichier originel vers le fichier copié, et c'est 1.632 + pourquoi Mercurial ne propage les changements à travers les copies 1.633 + seulement à la première fusion, et pas d'avantage.</para> 1.634 + </sect2> 1.635 + 1.636 + <sect2> 1.637 + <title>Comment faire des changements qui <emphasis>ne</emphasis> 1.638 + suivent <emphasis>pas</emphasis> une copie</title> 1.639 + 1.640 + <para id="x_1cb">Si pour une raison ou une autre, vous décidez que 1.641 + cette fonctionnalité de propager automatiquement les changements à 1.642 + travers les copies n'est pas pour vous, utilisez simplement la 1.643 + commande normale de copie de votre système (sur les systèmes de type 1.644 + Unix, il s'agit de <command>cp</command>) pour faire une copie d'un 1.645 + fichier. Utilisez ensuite <command role="hg-cmd">hg add</command> 1.646 + pour ajouter les nouveaux fichiers à la main. Cependant, avant d'en 1.647 + faire ainsi, relisez <xref linkend="sec:daily:why-copy"/>, et faites 1.648 + un choix en tout état de cause que cette fonctionnalité n'est pas 1.649 + appropriée à votre cas spécifique.</para> 1.650 + 1.651 + </sect2> 1.652 + <sect2> 1.653 + <title>Comportement de la commande <command role="hg-cmd">hg copy</command></title> 1.654 + 1.655 + <para id="x_1cc">Lorsque vous utilisez la commande <command 1.656 + role="hg-cmd">hg copy</command>, Mercurial crée une copie de chaque 1.657 + fichier source tel qu'il est actuellement dans le répertoire de 1.658 + travail. Cela signifie que si vous faites des modifications à un 1.659 + fichier, puis faites un <command role="hg-cmd">hg copy</command> sur 1.660 + celui-ci sans avoir au préalable commité ces changements, la nouvelle 1.661 + copie contiendra aussi les modifications que vous avez fait jusqu'à 1.662 + ce point. modifications you have made up until that point. (Je 1.663 + trouve ce comportement quelque peu contre intuitif, c'est pourquoi 1.664 + j'en fais mention ici.)</para> 1.665 + 1.666 + <para id="x_1cd">La commande <command role="hg-cmd">hg copy</command> 1.667 + agit comme la commande Unix <command>cp</command> (vous pouvez 1.668 + utilisez l'alias <command role="hg-cmd">hg cp</command> si vous 1.669 + préférez). Nous devons lui donner deux ou plus arguments où le 1.670 + dernier est considéré comme la <emphasis>destination</emphasis>, et 1.671 + les autres comme les <emphasis>sources</emphasis>.</para> 1.672 + 1.673 + <para id="x_685">Si vous passez à <command role="hg-cmd">hg 1.674 + copy</command> un seul fichier source, et que la destination 1.675 + n'existe pas, ceci créera un nouveau fichier avec ce nom.</para> 1.676 1.677 &interaction.daily.copy.simple; 1.678 - 1.679 - <para id="x_1ce">If the destination is a directory, Mercurial copies its 1.680 - sources into that directory.</para> 1.681 + 1.682 + <para id="x_1ce">Si la destination est un répertoire, Mercurial copie 1.683 + les sources dans ce répertoire.</para> 1.684 1.685 &interaction.daily.copy.dir-dest; 1.686 1.687 - <para id="x_1cf">Copying a directory is 1.688 - recursive, and preserves the directory structure of the 1.689 - source.</para> 1.690 + <para id="x_1cf">La copie de répertoire est récursive et préserve la 1.691 + structure du répertoire source.</para> 1.692 1.693 &interaction.daily.copy.dir-src; 1.694 1.695 - <para id="x_1d0">If the source and destination are both directories, the 1.696 - source tree is recreated in the destination directory.</para> 1.697 - 1.698 - &interaction.daily.copy.dir-src-dest; 1.699 - 1.700 - <para id="x_1d1">As with the <command role="hg-cmd">hg remove</command> 1.701 - command, if you copy a file manually and then want Mercurial 1.702 - to know that you've copied the file, simply use the <option 1.703 - role="hg-opt-copy">--after</option> option to <command 1.704 - role="hg-cmd">hg copy</command>.</para> 1.705 + <para id="x_1d0">Si la source et la destination sont tous deux des 1.706 + répertoires, l'arborescence de la source est recrée dans le 1.707 + répertoire destination.</para> 1.708 + 1.709 + &interaction.daily.copy.dir-src-dest; 1.710 + 1.711 + <para id="x_1d1">Comme avec la commande <command role="hg-cmd">hg 1.712 + remove</command>, si vous copiez un fichier manuellement et voulez 1.713 + que Mercurial sache qu'il s'agit d'une copie, utilisez simplement 1.714 + l'option <option role="hg-opt-copy">--after</option> avec <command 1.715 + role="hg-cmd">hg copy</command>.</para> 1.716 1.717 &interaction.daily.copy.after; 1.718 </sect2> 1.719 </sect1> 1.720 1.721 <sect1> 1.722 - <title>Renaming files</title> 1.723 - 1.724 - <para id="x_1d2">It's rather more common to need to rename a file than to 1.725 - make a copy of it. The reason I discussed the <command 1.726 - role="hg-cmd">hg copy</command> command before talking about 1.727 - renaming files is that Mercurial treats a rename in essentially 1.728 - the same way as a copy. Therefore, knowing what Mercurial does 1.729 - when you copy a file tells you what to expect when you rename a 1.730 - file.</para> 1.731 - 1.732 - <para id="x_1d3">When you use the <command role="hg-cmd">hg rename</command> 1.733 - command, Mercurial makes a copy of each source file, then 1.734 - deletes it and marks the file as removed.</para> 1.735 - 1.736 - &interaction.daily.rename.rename; 1.737 - 1.738 - <para id="x_1d4">The <command role="hg-cmd">hg status</command> command shows 1.739 - the newly copied file as added, and the copied-from file as 1.740 - removed.</para> 1.741 + <title>Renommer les fichiers</title> 1.742 + 1.743 + <para id="x_1d2">Il est plus commun d'avoir besoin de renommer un 1.744 + fichier que d'en faire une copie. La raison pour laquelle j'ai discuté 1.745 + de la commande <command role="hg-cmd">hg copy</command> avant de parler 1.746 + de renommage des fichiers est que Mercurial traite les renommages 1.747 + essenciellement comme une copie. Ainsi, savoir comment Mercurial traite 1.748 + les copies de fichiers vous informe sur ce que vous êtes en droit 1.749 + d'attendre lorsque vous renommez un fichier.</para> 1.750 + 1.751 + <para id="x_1d3">Lorsque vous utilisez la commande <command 1.752 + role="hg-cmd">hg rename</command>, Mercurial crée uen copie de chaque 1.753 + fichier source, les supprime et marque ces fichiers comme étant 1.754 + supprimés.</para> 1.755 + 1.756 + &interaction.daily.rename.rename; 1.757 + 1.758 + <para id="x_1d4">La commande <command role="hg-cmd">hg status</command> 1.759 + montre le nouveau fichier comme ajouté et le fichier origine comme 1.760 + supprimé.</para> 1.761 1.762 &interaction.daily.rename.status; 1.763 1.764 - <para id="x_1d5">As with the results of a <command role="hg-cmd">hg 1.765 - copy</command>, we must use the <option 1.766 - role="hg-opt-status">-C</option> option to <command 1.767 - role="hg-cmd">hg status</command> to see that the added file 1.768 - is really being tracked by Mercurial as a copy of the original, 1.769 - now removed, file.</para> 1.770 + <para id="x_1d5">A cause du <command role="hg-cmd">hg copy</command>, 1.771 + nous devons utiliser l'option <option role="hg-opt-status">-C</option> 1.772 + pour <command role="hg-cmd">hg status</command> afin d'observer que le 1.773 + fichier ajouté est bien suivi par Mercurial comme étant une copie de 1.774 + l'original maintenant supprimé.</para> 1.775 1.776 &interaction.daily.rename.status-copy; 1.777 1.778 - <para id="x_1d6">As with <command role="hg-cmd">hg remove</command> and 1.779 - <command role="hg-cmd">hg copy</command>, you can tell Mercurial 1.780 - about a rename after the fact using the <option 1.781 - role="hg-opt-rename">--after</option> option. In most other 1.782 - respects, the behavior of the <command role="hg-cmd">hg 1.783 - rename</command> command, and the options it accepts, are 1.784 - similar to the <command role="hg-cmd">hg copy</command> 1.785 - command.</para> 1.786 - 1.787 - <para id="x_686">If you're familiar with the Unix command line, you'll be 1.788 - glad to know that <command role="hg-cmd">hg rename</command> 1.789 - command can be invoked as <command role="hg-cmd">hg 1.790 - mv</command>.</para> 1.791 - 1.792 - <sect2> 1.793 - <title>Renaming files and merging changes</title> 1.794 - 1.795 - <para id="x_1d7">Since Mercurial's rename is implemented as 1.796 - copy-and-remove, the same propagation of changes happens when 1.797 - you merge after a rename as after a copy.</para> 1.798 - 1.799 - <para id="x_1d8">If I modify a file, and you rename it to a new name, and 1.800 - then we merge our respective changes, my modifications to the 1.801 - file under its original name will be propagated into the file 1.802 - under its new name. (This is something you might expect to 1.803 - <quote>simply work,</quote> but not all revision control 1.804 - systems actually do this.)</para> 1.805 - 1.806 - <para id="x_1d9">Whereas having changes follow a copy is a feature where 1.807 - you can perhaps nod and say <quote>yes, that might be 1.808 - useful,</quote> it should be clear that having them follow a 1.809 - rename is definitely important. Without this facility, it 1.810 - would simply be too easy for changes to become orphaned when 1.811 - files are renamed.</para> 1.812 - </sect2> 1.813 - 1.814 - <sect2> 1.815 - <title>Divergent renames and merging</title> 1.816 - 1.817 - <para id="x_1da">The case of diverging names occurs when two developers 1.818 - start with a file&emdash;let's call it 1.819 - <filename>foo</filename>&emdash;in their respective 1.820 - repositories.</para> 1.821 + <para id="x_1d6">Comme avec <command role="hg-cmd">hg remove</command> et 1.822 + <command role="hg-cmd">hg copy</command>, vous pouvez informer 1.823 + Mercurial à propos d'un renommage après coup en utilisant l'option 1.824 + <option role="hg-opt-rename">--after</option>. Dans le plus grand 1.825 + respet, le comportement de la commande <command role="hg-cmd">hg 1.826 + rename</command>, et les options qu'il accepte sont similaires à la 1.827 + commande <command role="hg-cmd">hg copy</command>.</para> 1.828 + 1.829 + <para id="x_686">Si vous êtes familié avec la ligne de commande Unix, 1.830 + vous serez heureux d'apprendre que la commande <command 1.831 + role="hg-cmd">hg rename</command> peut être invoquée par <command 1.832 + role="hg-cmd">hg mv</command>.</para> 1.833 + 1.834 + <sect2> 1.835 + <title>Renommer les fichiers et fusionner (merge) les changements</title> 1.836 + 1.837 + <para id="x_1d7">Puise que le rename de Mercurial est implanté comme un 1.838 + "copy-and-remove", la même propagation des changements a lieue 1.839 + lorsque vous fusionnez (merge) après un "rename" qu'après un 1.840 + "copy".</para> 1.841 + 1.842 + <para id="x_1d8">Si je modifie un fichier et que vous le renommez, si 1.843 + ensuite nous fusionnons nos changements respectifs, mes modifications 1.844 + sur le fichier sous son nom originel seront propagés vers le même 1.845 + fichier sous son nouveau nom. (C'est quelque chose que vous pourriez 1.846 + espérer voir <quote>fonctionner simplement</quote>, mais tous les 1.847 + systèmes de gestion de version ne le font pas.)</para> 1.848 + 1.849 + <para id="x_1d9">Tandis qu'avoir des changements qui suivent une copie 1.850 + est une fonctionnalité où vous hocheriez sûrement la tête en disant 1.851 + <quote>oui, cela pourrait être utile</quote>, il est clair que les 1.852 + voir suivre un renommage est définitivement important. Sans cette 1.853 + aptitude, il serait simplement trop facile d'avoir des changements 1.854 + qui deviennent orphelins lorsque des fichiers sont renommés.</para> 1.855 + </sect2> 1.856 + 1.857 + <sect2> 1.858 + <title>Renommages divergeants et fusion (merge)</title> 1.859 + 1.860 + <para id="x_1da">Le cas de noms divergeants a lieu lorsque deux 1.861 + développeurs commencent avec un fichier&emdash;apprelons le 1.862 + <filename>foo</filename>&emdash;dans leurs dépôts respectifs.</para> 1.863 1.864 &interaction.rename.divergent.clone; 1.865 1.866 - <para id="x_1db">Anne renames the file to <filename>bar</filename>.</para> 1.867 + <para id="x_1db">Anne renomme le fichier en 1.868 + <filename>bar</filename>.</para> 1.869 1.870 &interaction.rename.divergent.rename.anne; 1.871 1.872 - <para id="x_1dc">Meanwhile, Bob renames it to 1.873 - <filename>quux</filename>. (Remember that <command 1.874 - role="hg-cmd">hg mv</command> is an alias for <command 1.875 - role="hg-cmd">hg rename</command>.)</para> 1.876 - 1.877 - &interaction.rename.divergent.rename.bob; 1.878 - 1.879 - <para id="x_1dd">I like to think of this as a conflict because each 1.880 - developer has expressed different intentions about what the 1.881 - file ought to be named.</para> 1.882 - 1.883 - <para id="x_1de">What do you think should happen when they merge their 1.884 - work? Mercurial's actual behavior is that it always preserves 1.885 - <emphasis>both</emphasis> names when it merges changesets that 1.886 - contain divergent renames.</para> 1.887 + <para id="x_1dc">Pendant ce temps, Bob le renomme en 1.888 + <filename>quux</filename>. (Souvenez vous que <command 1.889 + role="hg-cmd">hg mv</command> est un alias pour <command 1.890 + role="hg-cmd">hg rename</command>.)</para> 1.891 + 1.892 + &interaction.rename.divergent.rename.bob; 1.893 + 1.894 + <para id="x_1dd">J'aime à penser qu'il s'agit d'un conflit puisque 1.895 + chaque développeur a exprimé différentes intentions au sujet de ce 1.896 + que le nom de ce fichier aurait du être.</para> 1.897 + 1.898 + <para id="x_1de">Que pensez vous qu'il devrait se produire lorsqu'ils 1.899 + fusionnent (merge) leurs travaux ? Le comportement actuel de 1.900 + Mercurial est qu'il préserve toujours les <emphasis>deux</emphasis> 1.901 + noms lorsqu'il fusionne (merge) des changesets qui contiennent des 1.902 + renommages divergeants.</para> 1.903 1.904 &interaction.rename.divergent.merge; 1.905 1.906 - <para id="x_1df">Notice that while Mercurial warns about the divergent 1.907 - renames, it leaves it up to you to do something about the 1.908 - divergence after the merge.</para> 1.909 - </sect2> 1.910 - 1.911 - <sect2> 1.912 - <title>Convergent renames and merging</title> 1.913 - 1.914 - <para id="x_1e0">Another kind of rename conflict occurs when two people 1.915 - choose to rename different <emphasis>source</emphasis> files 1.916 - to the same <emphasis>destination</emphasis>. In this case, 1.917 - Mercurial runs its normal merge machinery, and lets you guide 1.918 - it to a suitable resolution.</para> 1.919 - </sect2> 1.920 - 1.921 - <sect2> 1.922 - <title>Other name-related corner cases</title> 1.923 - 1.924 - <para id="x_1e1">Mercurial has a longstanding bug in which it fails to 1.925 - handle a merge where one side has a file with a given name, 1.926 - while another has a directory with the same name. This is 1.927 - documented as <ulink role="hg-bug" 1.928 - url="http://www.selenic.com/mercurial/bts/issue29">issue 1.929 - 29</ulink>.</para> 1.930 + <para id="x_1df">Remarquez que bien que Mercurial vous avertisse au 1.931 + sujet de la divergeance des renommages, il vous laisse faire quelque 1.932 + chose au sujet de la divergeance après la fusion (merge).</para> 1.933 + </sect2> 1.934 + 1.935 + <sect2> 1.936 + <title>Renommages et fusion convergeants</title> 1.937 + 1.938 + <para id="x_1e0">Un autre type de conflit de renommage intervient 1.939 + lorsque deux personne choisissent de renommer différents fichiers 1.940 + <emphasis>source</emphasis> vers la même 1.941 + <emphasis>destination</emphasis>. Dans ce cas, Mercurial exécute la 1.942 + machinerie normale de fusion (merge) et vous guide vers une 1.943 + solution convenable.</para> 1.944 + </sect2> 1.945 + 1.946 + <sect2> 1.947 + <title>Autres cas anguleux relatifs aux noms</title> 1.948 + 1.949 + <para id="x_1e1">Mercurial possède un bug de longue date dans lequel il 1.950 + échoue à traiter une fusion (merge) où un coté a un fichier avec un 1.951 + nom donné, alors que l'autre coté a un répertoire avec le même nom. 1.952 + Ceci est documenté dans l'<ulink role="hg-bug" 1.953 + url="http://www.selenic.com/mercurial/bts/issue29">issue 1.954 + 29</ulink>.</para> 1.955 1.956 &interaction.issue29.go; 1.957 1.958 @@ -521,98 +536,102 @@ 1.959 </sect1> 1.960 1.961 <sect1> 1.962 - <title>Recovering from mistakes</title> 1.963 - 1.964 - <para id="x_1e2">Mercurial has some useful commands that will help you to 1.965 - recover from some common mistakes.</para> 1.966 - 1.967 - <para id="x_1e3">The <command role="hg-cmd">hg revert</command> command lets 1.968 - you undo changes that you have made to your working directory. 1.969 - For example, if you <command role="hg-cmd">hg add</command> a 1.970 - file by accident, just run <command role="hg-cmd">hg 1.971 - revert</command> with the name of the file you added, and 1.972 - while the file won't be touched in any way, it won't be tracked 1.973 - for adding by Mercurial any longer, either. You can also use 1.974 - <command role="hg-cmd">hg revert</command> to get rid of 1.975 - erroneous changes to a file.</para> 1.976 - 1.977 - <para id="x_1e4">It is helpful to remember that the <command 1.978 - role="hg-cmd">hg revert</command> command is useful for 1.979 - changes that you have not yet committed. Once you've committed 1.980 - a change, if you decide it was a mistake, you can still do 1.981 - something about it, though your options may be more 1.982 - limited.</para> 1.983 - 1.984 - <para id="x_1e5">For more information about the <command 1.985 - role="hg-cmd">hg revert</command> command, and details about 1.986 - how to deal with changes you have already committed, see <xref 1.987 - linkend="chap:undo"/>.</para> 1.988 + <title>Récupération d'erreurs</title> 1.989 + 1.990 + <para id="x_1e2">Mercurial possède certaines commandes utiles qui vont 1.991 + vous aider à récupérer certaines erreurs communes.</para> 1.992 + 1.993 + <para id="x_1e3">La commande <command role="hg-cmd">hg revert</command> 1.994 + vous permet d'annuler les changements que vous avez fait dans votre 1.995 + répertoire de travail. Par exemple, si vous faites un <command 1.996 + role="hg-cmd">hg add</command> sur un fichier par accident, exécutez 1.997 + juste <command role="hg-cmd">hg revert</command> avec le nom du fichier 1.998 + que vous avez ajouté et tandis que le fichier ne touché d'une 1.999 + quelconque manière, il ne sera plus suivi comme ajouté par Mercurial. 1.1000 + Vous pouvez aussi utiliser la commande <command role="hg-cmd">hg 1.1001 + revert</command> pour vous débarasser de modifications erronés 1.1002 + apportées à un fichier.</para> 1.1003 + 1.1004 + <para id="x_1e4">Il est utile de se souvenir que la commande <command 1.1005 + role="hg-cmd">hg revert</command> est utile pour les modifications 1.1006 + qui n'ont pas encore été commitées. Une fois que vous avez committé un 1.1007 + changement, si vous décidez qu'il s'agissait d'une erreur, vous pouvez 1.1008 + toujours faire quelquechose à ce sujet, bien que vos options seront 1.1009 + un peu plus limitées.</para> 1.1010 + 1.1011 + <para id="x_1e5">Pour plus d'informations au sujet de la commande 1.1012 + <command role="hg-cmd">hg revert</command>, et des détails sur comment 1.1013 + traiter les modifications que vous avez déjà committées, référez vous à 1.1014 + <xref linkend="chap:undo"/>.</para> 1.1015 </sect1> 1.1016 1.1017 <sect1> 1.1018 - <title>Dealing with tricky merges</title> 1.1019 - 1.1020 - <para id="x_687">In a complicated or large project, it's not unusual for a 1.1021 - merge of two changesets to result in some headaches. Suppose 1.1022 - there's a big source file that's been extensively edited by each 1.1023 - side of a merge: this is almost inevitably going to result in 1.1024 - conflicts, some of which can take a few tries to sort 1.1025 - out.</para> 1.1026 - 1.1027 - <para id="x_688">Let's develop a simple case of this and see how to deal with 1.1028 - it. We'll start off with a repository containing one file, and 1.1029 - clone it twice.</para> 1.1030 + <title>Traiter avec les fusions (merge) malicieuses</title> 1.1031 + 1.1032 + <para id="x_687">Dans des projets compliqués ou conséquents, il n'est pas 1.1033 + rare qu'une fusion (merge) de deux changesets finisse par une migraine. 1.1034 + Supposez qu'il y a un gros fichier source qui a été largement édité de 1.1035 + chaque coté de la fusion (merge) : ceci va inévitablement résulter en 1.1036 + conflits, dont certains peuvent prendre quelques essais pour s'en 1.1037 + sortir.</para> 1.1038 + 1.1039 + <para id="x_688">Développons en un cas simple pour voir comment traiter 1.1040 + avec. Nous allons commencer avec un dépôt contenant un fichier, et le 1.1041 + cloner deux fois.</para> 1.1042 1.1043 &interaction.ch04-resolve.init; 1.1044 1.1045 - <para id="x_689">In one clone, we'll modify the file in one way.</para> 1.1046 + <para id="x_689">Dans un des clones, nous allons modifier le fichier 1.1047 + d'une façon.</para> 1.1048 1.1049 &interaction.ch04-resolve.left; 1.1050 1.1051 - <para id="x_68a">In another, we'll modify the file differently.</para> 1.1052 + <para id="x_68a">Dans un autre, nous allons modifier le fichier 1.1053 + différamment.</para> 1.1054 1.1055 &interaction.ch04-resolve.right; 1.1056 1.1057 - <para id="x_68b">Next, we'll pull each set of changes into our original 1.1058 - repo.</para> 1.1059 + <para id="x_68b">Ensuite, nous allons récupérer (pull) chaque ensemble de 1.1060 + changement dans notre dépôt original.</para> 1.1061 1.1062 &interaction.ch04-resolve.pull; 1.1063 1.1064 - <para id="x_68c">We expect our repository to now contain two heads.</para> 1.1065 + <para id="x_68c">Nous nous attendons à ce que notre dépôt contienne deux 1.1066 + HEADS.</para> 1.1067 1.1068 &interaction.ch04-resolve.heads; 1.1069 1.1070 - <para id="x_68d">Normally, if we run <command role="hg-cmd">hg 1.1071 - merge</command> at this point, it will drop us into a GUI that 1.1072 - will let us manually resolve the conflicting edits to 1.1073 - <filename>myfile.txt</filename>. However, to simplify things 1.1074 - for presentation here, we'd like the merge to fail immediately 1.1075 - instead. Here's one way we can do so.</para> 1.1076 + <para id="x_68d">Normalement, si nous lançons <command role="hg-cmd">hg 1.1077 + merge</command> à ce point, il nous renverra vers une interface 1.1078 + utilisateur qui nous permettra de résoudre manuellement les éditions 1.1079 + conflictuelles sur le fichier <filename>myfile.txt</filename>. 1.1080 + Cependant, pour simplifier les choses dans la présentation ici, nous 1.1081 + aimerions que la fusion (merge) échoue immédiatement plutôt. Voici une 1.1082 + façon de le faire.</para> 1.1083 1.1084 &interaction.ch04-resolve.export; 1.1085 1.1086 - <para id="x_68e">We've told Mercurial's merge machinery to run the command 1.1087 - <command>false</command> (which, as we desire, fails 1.1088 - immediately) if it detects a merge that it can't sort out 1.1089 - automatically.</para> 1.1090 - 1.1091 - <para id="x_68f">If we now fire up <command role="hg-cmd">hg 1.1092 - merge</command>, it should grind to a halt and report a 1.1093 - failure.</para> 1.1094 + <para id="x_68e">Nous avons dit à la machinerie de fusion de Mercurial 1.1095 + d'exécuter la commande <command>false</command> (qui échoue 1.1096 + immédiatement, à la demande) s'il détecte une fusion (merge) qu'il ne 1.1097 + peut pas arranger automatiquement.</para> 1.1098 + 1.1099 + <para id="x_68f">Si nous appelons maintenant <command role="hg-cmd">hg 1.1100 + merge</command>, il devrait planter et reporter une erreur.</para> 1.1101 1.1102 &interaction.ch04-resolve.merge; 1.1103 1.1104 - <para id="x_690">Even if we don't notice that the merge failed, Mercurial 1.1105 - will prevent us from accidentally committing the result of a 1.1106 - failed merge.</para> 1.1107 + <para id="x_690">Même si nous ne remarquons pas qu'une fusion (merge) a 1.1108 + échoué, Mercurial nous empéchera de committer le résultat d'une fusion 1.1109 + ratée.</para> 1.1110 1.1111 &interaction.ch04-resolve.cifail; 1.1112 1.1113 - <para id="x_691">When <command role="hg-cmd">hg commit</command> fails in 1.1114 - this case, it suggests that we use the unfamiliar <command 1.1115 - role="hg-cmd">hg resolve</command> command. As usual, 1.1116 - <command role="hg-cmd">hg help resolve</command> will print a 1.1117 - helpful synopsis.</para> 1.1118 + <para id="x_691">Lorsque <command role="hg-cmd">hg commit</command> 1.1119 + échoue dans ce cas, il suggère que nous utilisons la commande peu 1.1120 + connue <command role="hg-cmd">hg resolve</command>. Comme d'habitude, 1.1121 + <command role="hg-cmd">hg help resolve</command> affichera une aide 1.1122 + sommaire.</para> 1.1123 1.1124 <sect2> 1.1125 <title>File resolution states</title>