hgbook

annotate fr/appA-svn.xml @ 977:719b03ea27c8

merge with Italian, and very (few) work on ch03
author Romain PELISSE <belaran@gmail.com>
date Fri Sep 04 16:33:46 2009 +0200 (2009-09-04)
parents 030ccd6c5474
children 58e0737da566
rev   line source
belaran@970 1
bos@559 2
bos@686 3 <appendix id="svn">
bos@687 4 <?dbhtml filename="migrating-to-mercurial.html"?>
belaran@970 5 <title>Migrer vers Mercurial</title>
belaran@970 6
belaran@970 7 <para id="x_6e1">Une manière courante de s'essayer à un nouveau
JeanMarieClement@974 8 gestionnaire de révisions est d'expérimenter en migrant un
belaran@970 9 projet existant, plutôt que le faire avec un nouveau projet.
belaran@970 10 </para>
belaran@970 11
belaran@970 12 <para id="x_6e2">Dans cette annexe, nous discuterons comment importer
belaran@970 13 l'historique d'un projet dans Mercurial, et à quoi faire attention
JeanMarieClement@974 14 si vous êtes habitué à un autre outil de gestion de révisions.
belaran@970 15 </para>
bos@686 16
bos@686 17 <sect1>
belaran@970 18 <title>Importer l'historique depuis un autre système</title>
belaran@970 19
belaran@970 20 <para id="x_6e3">Mercurial est livré avec une extension nommée
JeanMarieClement@974 21 <literal>convert</literal>, qui permet d'importer un historique
JeanMarieClement@974 22 depuis les gestionnaire de révisions les plus courants. Au moment de
belaran@970 23 l'écriture de ce livre, il pouvait importer l'historique depuis:
belaran@970 24 </para>
bos@686 25 <itemizedlist>
bos@686 26 <listitem>
bos@691 27 <para id="x_6e4">Subversion</para>
bos@691 28 </listitem>
bos@691 29 <listitem>
bos@691 30 <para id="x_6e5">CVS</para>
bos@691 31 </listitem>
bos@691 32 <listitem>
bos@691 33 <para id="x_6e6">git</para>
bos@691 34 </listitem>
bos@691 35 <listitem>
bos@691 36 <para id="x_6e7">Darcs</para>
bos@691 37 </listitem>
bos@691 38 <listitem>
bos@691 39 <para id="x_6e8">Bazaar</para>
bos@691 40 </listitem>
bos@691 41 <listitem>
bos@691 42 <para id="x_6e9">Monotone</para>
bos@691 43 </listitem>
bos@691 44 <listitem>
bos@691 45 <para id="x_6ea">GNU Arch</para>
bos@691 46 </listitem>
bos@691 47 <listitem>
bos@691 48 <para id="x_6eb">Mercurial</para>
bos@686 49 </listitem>
bos@686 50 </itemizedlist>
bos@686 51
belaran@970 52 <para id="x_6ec">(Pour savoir pourquoi Mercurial lui même est supporté
JeanMarieClement@974 53 comme source, voir <xref linkend="svn.filemap"/>.)</para>
belaran@970 54
belaran@970 55 <para id="x_6ed">Vous pouvez activer l'extension de la manière
JeanMarieClement@974 56 habituelle, en éditant votre fichier <filename>~/.hgrc</filename></para>
bos@686 57
bos@686 58 <programlisting>[extensions]
bos@686 59 convert =</programlisting>
bos@686 60
belaran@970 61 <para id="x_6ee">Ceci rendra la commande <command>hg convert</command>
belaran@970 62 disponible. La commande est facile à utiliser. Par exemple, la
belaran@970 63 commande suivante va importer l'historique Subversion du <emphasis
JeanMarieClement@974 64 remap="it">framework</emphasis> de test <quote>Nose Unit</quote> dans Mercurial.
belaran@970 65 </para>
bos@686 66
bos@686 67 <screen><prompt>$</prompt> <userinput>hg convert http://python-nose.googlecode.com/svn/trunk</userinput></screen>
bos@686 68
belaran@970 69 <para id="x_6ef">L'extension <literal>convert</literal> opère de
JeanMarieClement@974 70 manière incrémentale. En d'autres mots, après une première exécution de
JeanMarieClement@974 71 la commande <command>hg convert</command>, les exécutions ultérieures
JeanMarieClement@974 72 importeront les révisions ultérieures à l'exécution précédente.
JeanMarieClement@974 73 La conversion incrémentale ne réussiera que si
belaran@970 74 vous exécutez <command>hg convert</command> dans le même dépôt que vous
JeanMarieClement@974 75 aviez utilisé à l'origine, ceci parce que l'extension <literal>convert</literal>
JeanMarieClement@974 76 sauvegarde un certain nombre de méta-données privées dans le fichier
JeanMarieClement@974 77 <filename>.hg/shamap</filename> (non versioné) au sein du dépôt cible.
belaran@970 78 </para>
belaran@970 79
JeanMarieClement@974 80 <para id="x_707">Lorsque vous voulez faire des modifications en utilisant
belaran@970 81 Mercurial, le mieux est de faire un clone de l'ensemble de l'arborescence
JeanMarieClement@974 82 que vous souhaitez convertir, et de laisser l'arborescence d'origine pour
JeanMarieClement@974 83 de futures conversions incrémentales. C'est la manière la plus sûre pour vous laisser
JeanMarieClement@974 84 récupérer et fusionner les modifications futures depuis l'outil de gestion
JeanMarieClement@974 85 de révisions dans votre nouveau dépôt Mercurial.</para>
bos@693 86
bos@693 87 <sect2>
belaran@970 88 <title>Convertir plusieurs branches</title>
belaran@970 89
JeanMarieClement@974 90 <para id="x_708">La commande <command>hg convert</command> citée
JeanMarieClement@974 91 ci-dessus convertit seulement l'historique de la <literal>branche
JeanMarieClement@974 92 principale (trunk)</literal> du dépôt Subversion. Si nous utilisons
belaran@970 93 à la place l'URL <literal>http://python-nose.googlecode.com/svn</literal>,
JeanMarieClement@974 94 Mercurial va automatiquement détecter la
belaran@970 95 <literal>branche principale (trunk)</literal>, les <literal>étiquettes
belaran@970 96 (tags)</literal>, et les <literal>branches</literal> que les dépôt
JeanMarieClement@974 97 Subversion utilisent généralement, et les importera chacun dans
belaran@970 98 une branche Mercurial distincte.</para>
belaran@970 99
belaran@970 100 <para id="x_709">Par défaut, chaque branche Subversion importée
JeanMarieClement@974 101 dans Mercurial se voit attribuer un nom de branche. Une fois la
JeanMarieClement@974 102 conversion achevée, vous pouvez obtenir la liste des noms des branches
belaran@970 103 actives dans le dépôt Mercurial en utilisant la commande
belaran@970 104 <command>hg branches -a</command>. Si vous préférez importer les
belaran@970 105 branches Subversion sans noms, ajoutez l'option <option>--config
belaran@970 106 convert.hg.usebranches=false</option> à la commande
belaran@970 107 <command>hg convert</command>.</para>
belaran@970 108
JeanMarieClement@974 109 <para id="x_70a">Une fois votre arborescence convertie,
JeanMarieClement@974 110 si vous souhaitez travailler selon la pratique habituelle sous Mercurial
JeanMarieClement@974 111 avec une arborescence qui ne contient qu'une seule branche, vous pouvez cloner
JeanMarieClement@974 112 cette seule branche en utilisant
belaran@970 113 <command>hg clone -r nomdemabranche</command>.</para>
bos@693 114 </sect2>
bos@693 115
bos@686 116 <sect2>
belaran@970 117 <title>Associer les noms d'utilisateurs</title>
belaran@970 118
JeanMarieClement@974 119 <para id="x_6f0">Certains outils de gestion de révisions
JeanMarieClement@974 120 ne sauvegardent, avec les modifications, que les noms
JeanMarieClement@974 121 d'utilisateurs raccourcis. Ceux-ci peuvent être difficiles à
JeanMarieClement@974 122 interpréter. La norme avec Mercurial est de sauvegarder le
JeanMarieClement@974 123 nom du <emphasis remap="it">committeur</emphasis> et son adresse
belaran@970 124 mail, ce qui est beaucoup plus utile pour discuter avec lui
belaran@970 125 par la suite.</para>
belaran@970 126
belaran@970 127 <para id="x_6f1">Si vous convertissez une arborescence depuis
JeanMarieClement@974 128 un gestionnaire de révisions qui utilise seulement les noms
JeanMarieClement@974 129 raccourcis, vous pouvez associer ces noms à des équivalents
belaran@970 130 plus détaillés en passant l'option <option>--authors</option>
belaran@970 131 à la commande <command>hg convert</command>. Cette option
JeanMarieClement@974 132 attend un fichier qui contient des entrées sous la forme suivante:
belaran@970 133 </para>
bos@686 134
bos@686 135 <programlisting>arist = Aristotle &lt;aristotle@phil.example.gr&gt;
bos@686 136 soc = Socrates &lt;socrates@phil.example.gr&gt;</programlisting>
bos@686 137
belaran@970 138 <para id="x_6f2">Quand <literal>convert</literal> trouve une
JeanMarieClement@974 139 modification associée au nom <literal>arist</literal> dans le
belaran@970 140 dépôt de source, il va utiliser le nom <literal>Aristotle
belaran@970 141 &lt;aristotle@phil.example.gr&gt;</literal> dans les révisions
belaran@970 142 Mercurial. Si aucune correspondance n'est trouvé, il utilise
belaran@970 143 le nom tel quel.</para>
bos@686 144 </sect2>
bos@686 145
bos@686 146 <sect2 id="svn.filemap">
belaran@970 147 <title>Nettoyer l'arboresence</title>
belaran@970 148
JeanMarieClement@974 149 <para id="x_6f3">Tous les projets n'ont pas un historique parfait.
JeanMarieClement@974 150 Il peut y avoir des répertoires qui n'auraient jamais dû être ajoutés,
JeanMarieClement@974 151 un fichier qui est trop volumineux, ou même une partie de la
JeanMarieClement@974 152 hiérarchie qui devrait être réorganisée.</para>
belaran@970 153
belaran@970 154 <para id="x_6f4">L'extension <literal>convert</literal> permet
belaran@970 155 d'utiliser un <quote>fichier d'association</quote> qui peut
JeanMarieClement@974 156 réorganiser les fichiers et les répertoires dans un projet lors de
JeanMarieClement@974 157 l'importation de son historique. Ceci est utile non seulement quand vous
belaran@970 158 importez l'historique d'un autre gestionnaire de révisions, mais
JeanMarieClement@974 159 aussi pour nettoyer ou réorganiser l'arborescence d'un projet
belaran@970 160 Mercurial.</para>
belaran@970 161
belaran@970 162 <para id="x_6f5">Pour indiquer le fichier d'association, on utilise
JeanMarieClement@974 163 l'option <option>--filemap</option> en lui fournissant un nom de
belaran@970 164 fichier. Le fichier d'association contient des lignes de la forme
JeanMarieClement@974 165 suivante:</para>
belaran@970 166
belaran@970 167 <programlisting># Ceci est un commentaire.
belaran@970 168 # Les lignes vides sont ignorées.
bos@686 169
bos@686 170 include path/to/file
bos@686 171
bos@686 172 exclude path/to/file
bos@686 173
bos@686 174 rename from/some/path to/some/other/place
bos@686 175 </programlisting>
JeanMarieClement@974 176
JeanMarieClement@974 177 <para id="x_6f6">La directive <literal>include</literal> inclut un
belaran@970 178 fichier, ou l'ensemble des fichiers d'un répertoire, dans le dépôt
belaran@970 179 de destination. La directive <literal>exclude</literal> omet les
belaran@970 180 fichiers ou répertoires du dépôt. Ceci inclut aussi les autres
belaran@970 181 fichiers et répertoires qui ne sont pas explicitement inclus.
belaran@970 182 La directive <literal>exclude</literal> entraine l'omission
JeanMarieClement@974 183 des fichiers ou répertoires, et autres fichiers qui ne sont pas
belaran@970 184 explicitement inclus.</para>
belaran@970 185
belaran@970 186 <para id="x_6f7">Pour déplacer un fichier ou un répertoire d'un
JeanMarieClement@974 187 emplacement à un autre, utilisez la directive
belaran@970 188 <literal>rename</literal>. Si vous avez besoin de déplacer un
JeanMarieClement@974 189 fichier ou un répertoire depuis un sous répertoire dans la racine
belaran@970 190 du dépôt, utilisez <literal>.</literal> comme second argument de
belaran@970 191 la directive <literal>rename</literal>.</para>
bos@686 192 </sect2>
bos@693 193
bos@693 194 <sect2>
JeanMarieClement@974 195 <title>Améliorer les performances de la conversion Subversion</title>
belaran@970 196
belaran@970 197 <para id="x_70b">Vous aurez souvent besoin de plusieurs essais
JeanMarieClement@974 198 avant d'arriver à la parfaite combinaison de fichier d'association de fichiers,
JeanMarieClement@974 199 de fichier d'association de noms d'utilisateurs et des autres paramètres. Hors,
belaran@970 200 convertir un dépôt Mercurial via un protocol comme <literal>ssh</literal>
JeanMarieClement@974 201 ou <literal>http</literal> peut être des milliers de fois plus long
belaran@970 202 que ce dont le système d'exploitation est en fait capable de faire,
belaran@970 203 à cause des latence réseau. Ceci peut rendre la conception de cette
belaran@970 204 combinaison parfaite très douloureuse.</para>
belaran@970 205
belaran@970 206 <para id="x_70c">La commande <ulink
bos@693 207 url="http://svn.collab.net/repos/svn/trunk/notes/svnsync.txt"><command>svnsync</command></ulink>
belaran@970 208 peut grandement améliorer la vitesse de conversion d'un dépôt
belaran@970 209 Subversion. Il s'agit d'un programme de miroir de dépôt Subversion
belaran@970 210 en lecture seule. L'idée est de créer un miroir local d'une
JeanMarieClement@974 211 arborescence Subversion, puis de convertir ce miroir en dépôt
belaran@970 212 Mercurial.</para>
belaran@970 213
belaran@970 214 <para id="x_70d">Supposez que nous voulions convertir le dépôt
belaran@970 215 Subversion du populaire projet Memcached en une arboresence Mercurial.
JeanMarieClement@974 216 Tout d'abord, nous créons un dépôt Subversion local.</para>
bos@693 217
bos@693 218 <screen><prompt>$</prompt> <userinput>svnadmin create memcached-mirror</userinput></screen>
bos@693 219
JeanMarieClement@974 220 <para id="x_70e">Puis, nous allons mettre en place un <quote>hook</quote> Subversion
belaran@970 221 dont <command>svnsync</command> a besoin.</para>
bos@693 222
bos@693 223 <screen><prompt>$</prompt> <userinput>echo '#!/bin/sh' > memcached-mirror/hooks/pre-revprop-change</userinput>
bos@693 224 <prompt>$</prompt> <userinput>chmod +x memcached-mirror/hooks/pre-revprop-change</userinput></screen>
bos@693 225
JeanMarieClement@974 226 <para id="x_70f">Nous initialisons ensuite <command>svnsync</command> dans ce
belaran@970 227 dépôt.</para>
bos@693 228
bos@693 229 <screen><prompt>$</prompt> <userinput>svnsync --init file://`pwd`/memcached-mirror \
bos@693 230 http://code.sixapart.com/svn/memcached</userinput></screen>
bos@693 231
belaran@970 232 <para id="x_710">La prochaine étape est de commencer le processus de
JeanMarieClement@974 233 mirroring de <command>svnsync</command>.</para>
bos@693 234
bos@693 235 <screen><prompt>$</prompt> <userinput>svnsync sync file://`pwd`/memcached-mirror</userinput></screen>
bos@693 236
belaran@970 237 <para id="x_711">Enfin, nous importons l'historique de notre dépôt
belaran@970 238 local Subversion dans Mercurial.</para>
bos@693 239
bos@693 240 <screen><prompt>$</prompt> <userinput>hg convert memcached-mirror</userinput></screen>
bos@693 241
belaran@970 242 <para id="x_712">Nous pouvons utiliser ce processus de manière
belaran@970 243 incrémentale, si le dépôt Subversion est toujours en activité.
belaran@970 244 Il suffit d'exécuter de nouveau <command>svnsync</command> pour
JeanMarieClement@974 245 récupérer les récentes modifications dans notre miroir, puis <command>hg
JeanMarieClement@974 246 convert</command>
belaran@970 247 les importe dans notre arboresence Mercurial.</para>
belaran@970 248
belaran@970 249 <para id="x_713">Il y a deux avantages à utiliser un import à deux
JeanMarieClement@974 250 étages comme avec <command>svnsync</command>. Le premier
JeanMarieClement@974 251 est qu'il utilise du code de synchronisation réseau de Subversion
JeanMarieClement@974 252 plus efficace que la commande <command>hg convert</command>,
JeanMarieClement@974 253 et donc transfère moins de données par le réseau. Le deuxième
JeanMarieClement@974 254 est que l'import depuis un dépôt Subversion local est si rapide que
JeanMarieClement@974 255 vous pouvez peaufiner et réitérer les paramètres de conversion de
JeanMarieClement@974 256 ce dernier sans souffrir de la qualité de la connection réseau.</para>
bos@693 257 </sect2>
bos@686 258 </sect1>
bos@686 259
bos@686 260 <sect1>
JeanMarieClement@974 261 <title>Migrer depuis Subversion</title>
JeanMarieClement@974 262
JeanMarieClement@974 263 <para id="x_6f8">Subversion est le système de gestion de versions
JeanMarieClement@974 264 open source le plus populaire aujourd'hui. Bien qu'il y ait des
belaran@970 265 différences entre Mercurial et Subversion, faire la transition de
belaran@970 266 l'un à l'autre n'est pas très difficile. Les deux disposent en effet
JeanMarieClement@974 267 de jeux de commandes similaires et d'interfaces similaires.</para>
bos@686 268
bos@686 269 <sect2>
belaran@970 270 <title>Différences philosophiques</title>
belaran@970 271
belaran@970 272 <para id="x_6f9">La différence fondamentale entre Subversion et
belaran@970 273 Mercurial est bien évidement que Subversion est centralisé, alors
belaran@970 274 que Mercurial est distribué. Puisque que Mercurial enregistre tout
belaran@970 275 l'historique d'un projet sur votre disque dur local, il n'a besoin
JeanMarieClement@974 276 d'effectuer des accès au réseau que lorsque vous voulez
JeanMarieClement@974 277 explicitement communiquer avec un autre dépôt. Subversion, par contre,
JeanMarieClement@974 278 ne conserve que peu d'information localement, et le client
JeanMarieClement@974 279 doit donc communiquer avec le serveur central pour la
belaran@970 280 plupart des opérations communes.</para>
belaran@970 281
JeanMarieClement@974 282 <para id="x_6fa">Subversion s'en tire plus ou moins bien sans notion
JeanMarieClement@974 283 de branche réellement bien définie : quelle portion de l'espace de nommage
belaran@970 284 du serveur est une branche est une simple question de convention, le
JeanMarieClement@974 285 logiciel n'imposant rien à ce sujet. Mercurial considère
JeanMarieClement@974 286 un dépôt comme un élément de la gestion des branches.</para>
belaran@970 287
bos@686 288 <sect3>
belaran@970 289 <title>Portée des commandes</title>
belaran@970 290
belaran@970 291 <para id="x_6fb">Puisque que Subversion ne sait pas réellement
belaran@970 292 quelle partie de son espace de nommage est en fait une branche, il
belaran@970 293 traite la plupart des commandes comme des requêtes à exécuter sur le
belaran@970 294 répertoire où vous vous situez, et ses sous répertoires. Par exemple,
belaran@970 295 si vous exécuter <command>svn log</command>, vous verrez l'historique
belaran@970 296 de la partie de l'arboresence où vous vous situez, et non la
belaran@970 297 hiérarchie entière.</para>
belaran@970 298
belaran@970 299 <para id="x_6fc">Les commandes de Mercurial ont un comportement
belaran@970 300 différents, appliquant toutes commandes à l'ensemble de l'arboresence
belaran@970 301 du dépôt. Exécutez la commande <command>hg log</command> et elle vous
belaran@970 302 donnera l'historique de l'ensemble de l'arboresence, quelque soit le
belaran@970 303 répertoire de cette dernière où vous vous situez à ce moment là. Si
belaran@970 304 vous souhaitez l'historique d'une répertoire ou seulement d'un
belaran@970 305 fichier, ajouter simplement le nom de celui-ci à la commande
belaran@970 306 <command>hg log src</command>.</para>
belaran@970 307
belaran@970 308 <para id="x_6fd">De ma propre expérience, cette différence dans leur
belaran@970 309 comportement par défaut est probablement ce qui risque de vous
belaran@970 310 surprendre si vous basculez régulièrement d'un outil à l'autre.</para>
bos@686 311 </sect3>
bos@686 312
bos@686 313 <sect3>
belaran@970 314 <title>Opération multi utilisateur et sécurité</title>
belaran@970 315
belaran@970 316 <para id="x_6fe">Avec Subversion, il est normal (bien que légèrement
belaran@970 317 désapprouvée) que différentes personnes collaborent sur une seule
belaran@970 318 branche. Si Alice et Bob travaillent ensemble, et Alice ajoute ses
belaran@970 319 modications à leur branche partagée, Bob doit alors mettre à jour
belaran@970 320 la vue de la banche de son client avant d'ajouter lui même ses
belaran@970 321 modifications. Puisqu'il n'a, à ce moment, aucun enregistrement
belaran@970 322 permanent des modifications qu'il a fait, il peut corrompre ou perdre
belaran@970 323 des modifications pendant et après sa mise à jour.</para>
belaran@970 324
belaran@970 325 <para id="x_6ff">Mercurial encourage, à l'inverse, un modèle
belaran@970 326 "commit-puis-merge". Bob ajoute ses modifications de manière locale
belaran@970 327 avant de récupérer les modifications d'Alice, ou d'envoyer les siennes
belaran@970 328 au serveur qu'ils partagent. Si Alice envoye ses modifications avant
belaran@970 329 que Alice n'envoye les siennes, il ne pourra envoyer ses
belaran@970 330 modifications avant d'avoir récupérer les siennes. Si il fait une
belaran@970 331 erreur lors de la fusion, il peut toujours à sa version d'origine,
belaran@970 332 telle qu'elle a été enregistré.</para>
belaran@970 333
belaran@970 334 <para id="x_700">Il est important de souligner qu'il s'agit de la
belaran@970 335 manière habituelle de travailler avec ses outils. Subversion propose
belaran@970 336 une manière plus sûr de travailler-dans-votre-propre-branche, mais il
belaran@970 337 est assez complexe pour que, en pratique, il ne soit jamais utiliser.
belaran@970 338 Mercurial propose un mode, un peu moyen sûr, mais permettant de
belaran@970 339 récupérer des modifications par dessus des modifications non
belaran@970 340 commitées, mais c'est considéré comme assez inhabituel.</para>
bos@686 341 </sect3>
bos@686 342
bos@686 343 <sect3>
belaran@970 344 <title>Publication vs changement locaux</title>
belaran@970 345
belaran@970 346 <para id="x_701">Une commande Subversion <command>svn
belaran@970 347 commit</command> publie immédiatement les modifications sur le
belaran@970 348 serveur, où ils peuvent être vu par n'importe qui doté du privilège
belaran@970 349 de lecture.</para>
belaran@970 350
belaran@970 351 <para id="x_702">Avec Mercurial, les modifications sont toujours
belaran@970 352 enregistrées localement, et doivent être par la suite transférer par
belaran@970 353 la commande <command>hg push</command>.</para>
belaran@970 354
belaran@970 355 <para id="x_703">Chaque approche à ses avantages et ses désavantages.
belaran@970 356 Le modèle Subversion implique que les modifications sont publiées, et
belaran@970 357 donc disponible immédiatement. D'un autre coté, il implique aussi
belaran@970 358 qu'un utilisateur doit avoir le droit d'écriture dans le dépôt pour
belaran@970 359 permettre l'utiliser normalement, et ce privilège n'est pas concédé
belaran@970 360 facilement par les projets Open Source.</para>
belaran@970 361
belaran@970 362 <para id="x_704">L'approche de Mercurial permet à quiquonque de faire
belaran@970 363 un clone du dépôt et d'y ajouter ses modifications sans jamais avoir
belaran@970 364 besoin de la permission de quiquonque, et l'on peut même publier ses
belaran@970 365 modifications et continuer à participer comme on le désir. La
belaran@970 366 distinction entre les commits et le transfert de ces derniers ouvre
belaran@970 367 la possibilité néanmoins que quelqu'un oublie pendant une longue
belaran@970 368 période de transférer ses modifications, ce qui dans certains cas
belaran@970 369 rares, peut piéger ses collaborateurs.</para>
bos@686 370 </sect3>
bos@686 371 </sect2>
bos@686 372
bos@686 373 <sect2>
belaran@970 374 <title>Références des commandes</title>
bos@686 375
bos@686 376 <table>
belaran@970 377 <title>Commandes Subversion et leurs équivalents Mercurial</title>
bos@686 378 <tgroup cols="3">
bos@686 379 <thead>
bos@686 380 <row>
bos@686 381 <entry>Subversion</entry>
bos@686 382 <entry>Mercurial</entry>
bos@686 383 <entry>Notes</entry>
bos@686 384 </row>
bos@686 385 </thead>
bos@686 386 <tbody>
bos@686 387 <row>
bos@686 388 <entry><command>svn add</command></entry>
bos@686 389 <entry><command>hg add</command></entry>
bos@686 390 <entry></entry>
bos@686 391 </row>
bos@686 392 <row>
bos@686 393 <entry><command>svn blame</command></entry>
bos@686 394 <entry><command>hg annotate</command></entry>
bos@686 395 <entry></entry>
bos@686 396 </row>
bos@686 397 <row>
bos@686 398 <entry><command>svn cat</command></entry>
bos@686 399 <entry><command>hg cat</command></entry>
bos@686 400 <entry></entry>
bos@686 401 </row>
bos@686 402 <row>
bos@686 403 <entry><command>svn checkout</command></entry>
bos@686 404 <entry><command>hg clone</command></entry>
bos@686 405 <entry></entry>
bos@686 406 </row>
bos@686 407 <row>
bos@686 408 <entry><command>svn cleanup</command></entry>
bos@686 409 <entry>n/a</entry>
belaran@970 410 <entry>Aucun nettoyage nécessaire.</entry>
bos@686 411 </row>
bos@686 412 <row>
bos@686 413 <entry><command>svn commit</command></entry>
bos@686 414 <entry><command>hg commit</command>; <command>hg
bos@686 415 push</command></entry>
belaran@970 416 <entry><command>hg push</command> publie les modifications
belaran@970 417 après leur enregistrement.</entry>
bos@686 418 </row>
bos@686 419 <row>
bos@686 420 <entry><command>svn copy</command></entry>
bos@686 421 <entry><command>hg clone</command></entry>
belaran@970 422 <entry>Pour créer une nouvelle branche</entry>
bos@686 423 </row>
bos@686 424 <row>
bos@686 425 <entry><command>svn copy</command></entry>
bos@686 426 <entry><command>hg copy</command></entry>
belaran@970 427 <entry>Pour copier des fichiers ou des répertoires</entry>
bos@686 428 </row>
bos@686 429 <row>
bos@686 430 <entry><command>svn delete</command> (<command>svn
bos@686 431 remove</command>)</entry>
bos@686 432 <entry><command>hg remove</command></entry>
bos@686 433 <entry></entry>
bos@686 434 </row>
bos@686 435 <row>
bos@686 436 <entry><command>svn diff</command></entry>
bos@686 437 <entry><command>hg diff</command></entry>
bos@686 438 <entry></entry>
bos@686 439 </row>
bos@686 440 <row>
bos@686 441 <entry><command>svn export</command></entry>
bos@686 442 <entry><command>hg archive</command></entry>
bos@686 443 <entry></entry>
bos@686 444 </row>
bos@686 445 <row>
bos@686 446 <entry><command>svn help</command></entry>
bos@686 447 <entry><command>hg help</command></entry>
bos@686 448 <entry></entry>
bos@686 449 </row>
bos@686 450 <row>
bos@686 451 <entry><command>svn import</command></entry>
bos@686 452 <entry><command>hg addremove</command>; <command>hg
bos@686 453 commit</command></entry>
bos@686 454 <entry></entry>
bos@686 455 </row>
bos@686 456 <row>
bos@686 457 <entry><command>svn info</command></entry>
bos@686 458 <entry><command>hg parents</command></entry>
belaran@970 459 <entry>Affiche quelle révision est extraite</entry>
bos@686 460 </row>
bos@686 461 <row>
bos@686 462 <entry><command>svn info</command></entry>
bos@686 463 <entry><command>hg showconfig
bos@686 464 paths.parent</command></entry>
belaran@970 465 <entry>Affiche de quelle URL est extrait ce dépôt</entry>
bos@686 466 </row>
bos@686 467 <row>
bos@686 468 <entry><command>svn list</command></entry>
bos@686 469 <entry><command>hg manifest</command></entry>
bos@686 470 <entry></entry>
bos@686 471 </row>
bos@686 472 <row>
bos@686 473 <entry><command>svn log</command></entry>
bos@686 474 <entry><command>hg log</command></entry>
bos@686 475 <entry></entry>
bos@686 476 </row>
bos@686 477 <row>
bos@686 478 <entry><command>svn merge</command></entry>
bos@686 479 <entry><command>hg merge</command></entry>
bos@686 480 <entry></entry>
bos@686 481 </row>
bos@686 482 <row>
bos@686 483 <entry><command>svn mkdir</command></entry>
bos@686 484 <entry>n/a</entry>
belaran@970 485 <entry>Mercurial ne versionne pas les répertoires</entry>
bos@686 486 </row>
bos@686 487 <row>
bos@686 488 <entry><command>svn move</command> (<command>svn
bos@686 489 rename</command>)</entry>
bos@686 490 <entry><command>hg rename</command></entry>
bos@686 491 <entry></entry>
bos@686 492 </row>
bos@686 493 <row>
bos@686 494 <entry><command>svn resolved</command></entry>
bos@686 495 <entry><command>hg resolve -m</command></entry>
bos@686 496 <entry></entry>
bos@686 497 </row>
bos@686 498 <row>
bos@686 499 <entry><command>svn revert</command></entry>
bos@686 500 <entry><command>hg revert</command></entry>
bos@686 501 <entry></entry>
bos@686 502 </row>
bos@686 503 <row>
bos@686 504 <entry><command>svn status</command></entry>
bos@686 505 <entry><command>hg status</command></entry>
bos@686 506 <entry></entry>
bos@686 507 </row>
bos@686 508 <row>
bos@686 509 <entry><command>svn update</command></entry>
bos@686 510 <entry><command>hg pull -u</command></entry>
bos@686 511 <entry></entry>
bos@686 512 </row>
bos@686 513 </tbody>
bos@686 514 </tgroup>
bos@686 515 </table>
bos@686 516 </sect2>
bos@686 517 </sect1>
bos@686 518
bos@686 519 <sect1>
belaran@970 520 <title>Conseils utiles pour les débutants</title>
belaran@970 521
belaran@970 522 <para id="x_705">Avec la plupart des gestionnaire de révisions, afficher
belaran@970 523 un diff associé à une révision peut être assez douloureux. Par exemple,
belaran@970 524 avec Subversion, pour voir ce qui a été modifiée dans la révision 104654,
belaran@970 525 vous devez saisir <command>svn diff -r104653:104654</command>. Mercurial
belaran@970 526 élimine le besoin de saisir l'identifiant d'une révision deux fois dans
belaran@970 527 ce cas classique. Pour un simple diff, <command>hg
belaran@970 528 export<command></command>
belaran@970 529 104654</command> suffit. Pour l'entrée du journal suivi du diff,
belaran@970 530 <command>hg log -r104654</command>. </para>
belaran@970 531
belaran@970 532 <para id="x_706">Quand vous exécutez la commande <command>hg status</command>
belaran@970 533 sans aucun arguments, elle affiche l'état de l'ensemble de l'arboresence,
belaran@970 534 avec des chemins relatifs partant de la raçine du dépôt. Ceci rend
belaran@970 535 difficile de copier un nom de fichier depuis la sortie de la commande
belaran@970 536 <command>hg status</command> dans une autre ligne de commande. Si vous
belaran@970 537 fournissez un fichier ou un répertoire à la commande <command>hg
belaran@970 538 status</command>, elle va afficher les chemins relatif depuis votre
belaran@970 539 répertoire courant à la place. Ainsi, pour avoir un état sur l'ensemble
belaran@970 540 de l'arboresence à l'aide de <command>hg status</command>, avec des
belaran@970 541 chemins relatifs à votre répertoire courant, et non le raçine du dépôt,
belaran@970 542 ajoutez la sortie de <command>hg root</command> à la commande
belaran@970 543 <command>hg status</command>. Vous pouvez le faire aisément sur un
belaran@970 544 système Unix ainsi :</para>
bos@686 545
bos@686 546 <screen><prompt>$</prompt> <userinput>hg status `hg root`</userinput></screen>
bos@686 547 </sect1>
bos@559 548 </appendix>
bos@559 549
bos@559 550 <!--
bos@559 551 local variables:
bos@559 552 sgml-parent-document: ("00book.xml" "book" "appendix")
bos@559 553 end:
bos@559 554 -->