hgbook

diff fr/ch02-tour-basic.xml @ 964:6b680d569bb4

deleting a bunch of files not longer necessary to build the documentation.
Adding missing newly files needed to build the documentation
author Romain PELISSE <belaran@gmail.com>
date Sun Aug 16 04:58:01 2009 +0200 (2009-08-16)
parents
children 1df99de46e39
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/fr/ch02-tour-basic.xml	Sun Aug 16 04:58:01 2009 +0200
     1.3 @@ -0,0 +1,889 @@
     1.4 +<!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->
     1.5 +
     1.6 +<chapter>
     1.7 +<title>Un rapide tour de Mercurial</title>
     1.8 +<para>\label{chap:tour-basic}</para>
     1.9 +
    1.10 +<sect1>
    1.11 +<title>Installer Mercurial sur votre système</title>
    1.12 +<para>\label{sec:tour:install}</para>
    1.13 +
    1.14 +<para>Des paquetages binaires de Mercurial sont disponibles pour la plupart
    1.15 +des systèmes d'exploitation, ce qui rend facile l'utilisation immédiate
    1.16 +de Mercurial sur votre ordinateur.</para>
    1.17 +
    1.18 +<sect2>
    1.19 +<title>Linux</title>
    1.20 +
    1.21 +<para>Parce que chaque distribution de Linux a ses propres outils de gestion
    1.22 +de paquets, politiques et rythmes de développements, il est difficile de
    1.23 +donner un ensemble d'instructions uniques pour installer les binaires de
    1.24 +Mercurial. La version de Mercurial avec laquelle vous vous retrouverez
    1.25 +dépendra grandement de l'activité de la personne en charge du paquetage
    1.26 +pour la distribution.</para>
    1.27 +
    1.28 +<para>Pour rester simple, je me concentrerai sur l'installation de Mercurial
    1.29 +en ligne de commande, sous les distributions les plus courantes. La
    1.30 +plupart des distributions fournissent des gestionnaires graphiques de
    1.31 +paquetage qui vous permettront d'installer Mercurial en quelques clicks.
    1.32 +Le paquetage devrait se nommer \textit{mercurial}.</para>
    1.33 +
    1.34 +<itemizedlist>
    1.35 +<listitem><para>Debian:</para>
    1.36 +</listitem><programlisting>
    1.37 +<listitem><para>    apt-get install mercurial</para>
    1.38 +</listitem></programlisting></para>
    1.39 +</listitem>
    1.40 +<listitem><para>Fedora Core:
    1.41 +</para>
    1.42 +</listitem><programlisting>
    1.43 +<listitem><para>    yum install mercurial
    1.44 +</para>
    1.45 +</listitem></programlisting>
    1.46 +
    1.47 +</para>
    1.48 +</listitem>
    1.49 +<listitem><para>Gentoo:
    1.50 +</para>
    1.51 +</listitem><programlisting>
    1.52 +<listitem><para>    emerge mercurial
    1.53 +</para>
    1.54 +</listitem></programlisting>
    1.55 +
    1.56 +</para>
    1.57 +</listitem>
    1.58 +<listitem><para>OpenSUSE:
    1.59 +</para>
    1.60 +</listitem><programlisting>
    1.61 +<listitem><para>    yum install mercurial
    1.62 +</para>
    1.63 +</listitem></programlisting>
    1.64 +
    1.65 +</para>
    1.66 +</listitem>
    1.67 +<listitem><para>Ubuntu: Le paquetage de Mercurial d'Ubuntu est construit sur celui de Debian.
    1.68 +              Pour l'installer, exécutez simplement les commandes suivantes:
    1.69 +</para>
    1.70 +</listitem><programlisting>
    1.71 +<listitem><para>    apt-get install mercurial
    1.72 +</para>
    1.73 +</listitem></programlisting>
    1.74 +<listitem><para>  Les paquetages Ubuntu pour Mercurial ont tendance à être un peu en retard
    1.75 +  par rapport au paquetage Debian (au moment de l'écriture de ce livre, il
    1.76 +  faut compter à peu près un retard de 7 mois), ce qui signifie que parfois
    1.77 +  sur Ubuntu, vous risquez de rencontrer des problèmes qui ont été corrigés
    1.78 +  depuis longtemps dans les paquetages Debian.
    1.79 +</para>
    1.80 +</listitem></itemizedlist>
    1.81 +
    1.82 +</sect2>
    1.83 +<sect2>
    1.84 +<title>Solaris</title>
    1.85 +
    1.86 +<para>SunFreeWare, à <ulink url="http://www.saufreeware.com">http://www.saufreeware.com</ulink>, est une bonne source
    1.87 +pour trouver un vaste nombre de paquets précompilés pour 32 ou 64 bits
    1.88 +Intel et les architecture Sparc, dont les versions courantes de Mercurial.
    1.89 +</para>
    1.90 +
    1.91 +</sect2>
    1.92 +<sect2>
    1.93 +<title>Mac OS X</title>
    1.94 +
    1.95 +<para>Lee Cantey publie un installateur de Mercurial pour Mac OS X sur le site
    1.96 +<ulink url="http://mercurial.berkwood.com">http://mercurial.berkwood.com</ulink>.  Ce paquetage fonctionne sur les
    1.97 +architectures Intel- et PowerPC. Avant de vous en servir, vous devez
    1.98 +installer une version Universelle MacPython <citation>web:macpython</citation>. C'est
    1.99 +assez facile à faire : suivez simplement les instructions sur le site
   1.100 +de Lee.
   1.101 +</para>
   1.102 +
   1.103 +<para>Il est aussi possible d'installer Mercurial en utilisant Fink ou MacPorts,
   1.104 +deux outils de gestion de paquetage libres pour Mac OS X. Si vous avez
   1.105 +Fink, utilisez <command>sudo fink install mercurial-py25</command>. Si vous avez
   1.106 +MacPorts, <command>sudo port install mercurial</command>.
   1.107 +</para>
   1.108 +
   1.109 +</sect2>
   1.110 +<sect2>
   1.111 +<title>Windows</title>
   1.112 +
   1.113 +<para>Lee Cantey publie aussi un installateur de Mercurial pour Windows sur le site
   1.114 +<ulink url="http://mercurial.berkwood.com">http://mercurial.berkwood.com</ulink>. Ce paquetage n'a aucune dépendance
   1.115 +externe, il fonctionne <quote>tout court</quote>.
   1.116 +</para>
   1.117 +
   1.118 +<note>
   1.119 +<para>  La version de Windows de Mercurial ne convertie pas automatiquement
   1.120 +  les retours chariot Windows et Unix. Si vous désirez partager votre
   1.121 +  travail avec des utilisateurs Unix, vous devez faire un peu de configuration
   1.122 +  supplémentaire. XXX En dire plus.
   1.123 +</para>
   1.124 +</note>
   1.125 +
   1.126 +</sect2>
   1.127 +</sect1>
   1.128 +<sect1>
   1.129 +<title>Commencer à utiliser Mercurial</title>
   1.130 +
   1.131 +<para>Pour commencer, nous utiliserons la commande <command role="hg-cmd">hg version</command> pour vérifier
   1.132 +si Mercurial est installé proprement. Les informations affichées sur la
   1.133 +version ne sont pas réellement importantes en soit, c'est surtout de savoir
   1.134 +si elles s'affichent qui nous intéresse.
   1.135 +<!-- &interaction.tour.version; -->
   1.136 +</para>
   1.137 +
   1.138 +<sect2>
   1.139 +<title>L'aide intégrée</title>
   1.140 +
   1.141 +<para>Mercurial fournit un système d'aide intégré, ce qui est inestimable quand
   1.142 +vous vous retrouvez coincé à essayer de vous rappeler comment lancer telle
   1.143 +ou telle commande.
   1.144 +Si c'est le cas, exécutez simplement <command role="hg-cmd">hg help</command>; il vous aidera à imprimer
   1.145 +une brève liste de commandes, avec une description de ce qu'elles font. Si vous
   1.146 +demandez de l'aide sur une commande spécifique (voir ci-dessous), il affichera
   1.147 +des informations plus détaillées.
   1.148 +<!-- &interaction.tour.help; -->
   1.149 +Pour un niveau d'informations encore plus détaillées (ce dont vous aurez rarement
   1.150 +besoin), exécuter <command role="hg-cmd">hg help <option role="hg-opt-global">-v</option></command>.  L'option <option role="hg-opt-global">-v</option> est
   1.151 +l'abréviation de <option role="hg-opt-global">--verbose</option>, et indique à Mercurial d'afficher plus
   1.152 +d'informations que d'habitude.
   1.153 +</para>
   1.154 +
   1.155 +</sect2>
   1.156 +</sect1>
   1.157 +<sect1>
   1.158 +<title>Travailler avec un dépôt</title>
   1.159 +
   1.160 +<para>Avec Mercurial, tout se déroule au sein du <emphasis>dépôt</emphasis>\footnote{NdT: Dépôt est
   1.161 +la traduction que j'ai retenue pour tout l'ouvrage du terme anglais \textit{repository}}.
   1.162 +Le dépôt d'un projet contient tous les fichiers qui <quote>appartiennent</quote> au projet.
   1.163 +</para>
   1.164 +
   1.165 +<para>Il n'y a rien de particulièrement magique au sujet de ce dépôt, c'est
   1.166 +simplement une arborescence sur votre système de fichiers que Mercurial
   1.167 +traite de manière spéciale. Vous pouvez renommer ou effacer ce répertoire
   1.168 +à n'importe quel moment, en utilisant la ligne de commande ou votre
   1.169 +explorateur de fichiers.
   1.170 +</para>
   1.171 +
   1.172 +<sect2>
   1.173 +<title>Faire une copie locale de votre dépôt</title>
   1.174 +
   1.175 +<para><emphasis>Copier</emphasis> un dépôt est juste un peu spécial. Bien que vous
   1.176 +puissiez utiliser une commande habituelle de copie pour copier
   1.177 +votre dépôt, il vaut mieux utiliser une commande fournie par
   1.178 +Mercurial. Cette commande est appelée <command role="hg-cmd">hg clone</command>, car elle
   1.179 +crée une copie identique à un dépôt existant.
   1.180 +<!-- &interaction.tour.clone; -->
   1.181 +Si votre opération de clonage réussit, vous devriez maintenant
   1.182 +avoir un répertoire local appelé <filename class="directory">hello</filename>. Ce répertoire
   1.183 +contiendra quelques fichiers.
   1.184 +<!-- &interaction.tour.ls; -->
   1.185 +Ces fichiers ont le même contenu et historique dans votre dépôt
   1.186 +qu'ils ont dans le dépôt que vous avez cloné.
   1.187 +</para>
   1.188 +
   1.189 +<para>Chaque dépôt Mercurial est complet, autonome et indépendant. Il
   1.190 +contient sa propre copie privée des fichiers du projet et de leur
   1.191 +historique. Le clone d'un dépôt se souvient de la localisation du
   1.192 +dépôt à partir duquel il a été clôné, mais il ne communique pas avec
   1.193 +ce dernier, ou un autre, à moins que vous ne lui demandiez.
   1.194 +</para>
   1.195 +
   1.196 +<para>Ce que tout ceci signifie pour le moment est que nous sommes libres
   1.197 +d'expérimenter avec ce dépôt, confiants dans le fait qu'il s'agit d'un
   1.198 +<quote>bac à sable</quote> qui n'affectera personne d'autre.
   1.199 +</para>
   1.200 +
   1.201 +</sect2>
   1.202 +<sect2>
   1.203 +<title>Quel est le contenu d'un dépôt ?</title>
   1.204 +
   1.205 +<para>Prêtons plus attention un instant au contenu d'un dépôt. Nous voyons
   1.206 +qu'il contient un répertoire nommé <filename class="directory">.hg</filename>. C'est ici que Mercurial
   1.207 +conserve toutes ses métadonnées.
   1.208 +<!-- &interaction.tour.ls-a; -->
   1.209 +</para>
   1.210 +
   1.211 +<para>Le contenu du répertoire <filename class="directory">.hg</filename> et ses sous répertoires sont les
   1.212 +seuls propres à Mercurial. Tous les autres fichiers et répertoires dans
   1.213 +le dépôt sont à vous, et vous pouvez en faire ce que vous voulez.
   1.214 +</para>
   1.215 +
   1.216 +<para>Pour introduire un peu de terminologie, le répertoire <filename class="directory">.hg</filename> est
   1.217 +un <quote>vrai</quote> dépôt, et tous les fichiers et les répertoires qui coexistent
   1.218 +avec lui, sont désignés sous le nom <emphasis>espace de travail</emphasis>\footnote{NdT:
   1.219 +\textit{working directory}}. Une manière facile de se rappeler cette
   1.220 +distinction est de retenir que le <emphasis>dépôt</emphasis> contient l'<emphasis>historique</emphasis>
   1.221 +de votre projet, alors que l'<emphasis>espace de travail</emphasis> contient une \emph{copie
   1.222 +ponctuelle}\footnote{NdT: Ce terme est une traduction du terme anglais
   1.223 +\textit{snapshot}. Il est traduit ici pour faciliter la lecture, mais ne sera
   1.224 +plus traduit par la suite.} de votre projet à un certain point de son
   1.225 +historique.
   1.226 +</para>
   1.227 +
   1.228 +</sect2>
   1.229 +</sect1>
   1.230 +<sect1>
   1.231 +<title>Une ballade dans l'historique</title>
   1.232 +
   1.233 +<para>Une des premières choses que vous aurez envie de faire avec un nouveau
   1.234 +dépôt, sera de comprendre son historique. La commande <command role="hg-cmd">hg log</command> vous
   1.235 +donne une vue de l'historique.
   1.236 +<!-- &interaction.tour.log; -->
   1.237 +Par défaut, cette commande affiche à l'écran un bref paragraphe pour chaque
   1.238 +révision enregistrée pour ce projet. Dans la terminologie de Mercurial, nous
   1.239 +appelons chacun de ces évènements enregistrés un <emphasis>changeset</emphasis>, parce
   1.240 +qu'il contient un ensemble de modifications sur plusieurs fichiers.
   1.241 +</para>
   1.242 +
   1.243 +<para>La commande <command role="hg-cmd">hg log</command> affiche ainsi ces informations:
   1.244 +</para>
   1.245 +<itemizedlist>
   1.246 +<listitem><para><literal>changeset</literal>: Ce champ contient un nombre, séparé par deux points
   1.247 +  (:), d'une chaine hexadécimale. Il s'agit en fait d'<emphasis>identifiants</emphasis>
   1.248 +  d'un \textit{changeset}. Il y a deux identifiants car le numéro de
   1.249 +  la révision est plus court et plus à facile à saisir qu'une séquence
   1.250 +  hexadécimale.
   1.251 +</para>
   1.252 +</listitem>
   1.253 +<listitem><para><literal>user</literal>: L'identité de la personne qui a créée ce  %%% laisser le terme anglais car il sera affiché
   1.254 +  \textit{changeset}. C'est un champ libre de forme, mais la plupart du
   1.255 +  temps il contient le nom et l'email de la personne.
   1.256 +</para>
   1.257 +</listitem>
   1.258 +<listitem><para><literal>date</literal>: La date et l'heure à laquelle le \textit{changeset}
   1.259 +  a été créé, ainsi que le \textit{fuseau horaire} dans laquelle il a été créé. %%%TODO: Translate 'timezone' properly : FUSEAU
   1.260 +  (La date et l'heure sont locales à ce \textit{fuseau}, elles indiquent
   1.261 +  donc quelle date et heure il était pour la personne qui a créé ce %%%TODO: je suppose (quelle "heure")  OUI
   1.262 +  \textit{changeset}.)
   1.263 +</para>
   1.264 +</listitem>
   1.265 +<listitem><para><literal>résumé</literal>: La première du message que le créateur a associé à
   1.266 +  son \textit{changeset} pour le décrire.
   1.267 +</para>
   1.268 +</listitem></itemizedlist>
   1.269 +
   1.270 +<para>Par défaut, la commande <command role="hg-cmd">hg log</command> n'affiche qu'un résumé, il manque
   1.271 +beaucoup de détails.
   1.272 +</para>
   1.273 +
   1.274 +<para>La figure <xref linkend="fig:tour-basic:history"/> fournit une représentation graphique
   1.275 +de l'historique du dépôt <filename class="directory">hello</filename>, pour rendre plus facile de voir
   1.276 +dans quelle direction l'historique se <quote>déroule</quote>\footnote{NdT: \textit{flowing in}.}.
   1.277 +Nous reviendrons régulièrement sur cette représentation dans ce chapitre et
   1.278 +ceux qui suivent.
   1.279 +</para>
   1.280 +
   1.281 +<informalfigure>
   1.282 +
   1.283 +<para>  <mediaobject><imageobject><imagedata fileref="tour-history"/></imageobject><textobject><phrase>XXX add text</phrase></textobject></mediaobject>
   1.284 +  <caption><para>Représentation graphique du dépôt <filename class="directory">hello</para></caption> </filename>
   1.285 +  \label{fig:tour-basic:history}
   1.286 +</para>
   1.287 +</informalfigure>
   1.288 +
   1.289 +<sect2>
   1.290 +<title>Changesets, révisions, et discuter avec les autres</title>
   1.291 +<para>%%% je propose "colaboration"
   1.292 +</para>
   1.293 +
   1.294 +<para>Comme l'anglais est réputé pour être un langage maladroit, et que l'informatique
   1.295 +est la source de bien des erreurs de terminologies (pourquoi utiliser un
   1.296 +seul terme quand quatre feront l'affaire ?), la gestion de version a une
   1.297 +variété de mots et de phrases qui veulent dire la même chose. Si vous
   1.298 +discutez d'historique de Mercurial avec d'autres personnes,
   1.299 +%%%TODO: ça ne veut rien dire: il faut supprimer une des personnes : soit "quelqu'un",
   1.300 +% soit "à d'autres personnes"
   1.301 +vous constaterez que souvent le mot <quote>\textit{changeset}</quote> est contracté simplement
   1.302 +en <quote>change</quote> ou (à l'écrit) <quote>cset</quote>, et même parfois un
   1.303 +\textit{changeset} simplement <quote>révision</quote>, abrégé en <quote>rev</quote>.
   1.304 +</para>
   1.305 +
   1.306 +<para>Bien que le <emphasis>mot</emphasis> que vous utilisez pour désigner le concept de
   1.307 +\textit{changeset} importe peu, l'<emphasis>identifiant</emphasis> que vous utilisez
   1.308 +pour désigner un <emphasis>changeset</emphasis> \textit{spécifique} a une grande
   1.309 +importance. Rappelez vous que le champ \textit{changeset} affiché par la
   1.310 +commande <command role="hg-cmd">hg log</command> identifie un \textit{changeset} à la fois avec
   1.311 +un numéro de révision et une séquence hexadécimale.
   1.312 +</para>
   1.313 +
   1.314 +<itemizedlist>
   1.315 +<listitem><para>Le numéro de révision est <emphasis>seulement valable dans ce dépôt</emphasis>,
   1.316 +</para>
   1.317 +</listitem>
   1.318 +<listitem><para>alors que la séquence hexadécimale est un \emph{identifiant
   1.319 +	permanent, et invariant } qui pourra toujours être associé au
   1.320 +	\textit{changeset} exact de <emphasis>chaque</emphasis> copie de votre dépôt.
   1.321 +</para>
   1.322 +</listitem></itemizedlist>
   1.323 +
   1.324 +<para>La distinction est importante. Si vous envoyez un email à quelqu'un en
   1.325 +parlant de la <quote>révision 33</quote>, il est très probable que sa révision 33
   1.326 +<emphasis>ne sera pas la même</emphasis> que la votre. La raison de ceci est que le
   1.327 +numéro de révision dépend de l'ordre dans lequel les modifications sont
   1.328 +arrivées dans le dépôt, et il n'y a aucune garantie que les mêmes changements
   1.329 +soient arrivés dans le même ordre dans différents dépôts. Trois modifications
   1.330 +$a,b,c$ peuvent aisément apparaitre dans un dépôt comme $0,1,2$, et dans
   1.331 +un autre comme $1,0,2$.
   1.332 +</para>
   1.333 +
   1.334 +<para>Mercurial utilise les numéros de révision uniquement comme des raccourcis
   1.335 +pratiques. Si vous devez discuter d'un \textit{changeset} avec quelqu'un,
   1.336 +ou identifer un \textit{changeset} pour une quelquonque %%%TODO: our : "pour" ou "ou"
   1.337 +raison (par exemple, un rapport de \textit{bug}), utilisez la séquence
   1.338 +hexadécimale.
   1.339 +</para>
   1.340 +
   1.341 +</sect2>
   1.342 +<sect2>
   1.343 +<title>Afficher une révision spécifique</title>
   1.344 +
   1.345 +<para>Pour réduire la sortie de <command role="hg-cmd">hg log</command> à une seule révision, utilisez
   1.346 +l'option <option role="hg-opt-log">-r</option> (ou <option role="hg-opt-log">--rev</option>). Vous pouvez utiliser
   1.347 +le numéro de révision ou la séquence hexadécimale comme identifiant, et
   1.348 +demander autant de révisions que vous le souhaitez.
   1.349 +<!-- &interaction.tour.log-r; -->
   1.350 +</para>
   1.351 +
   1.352 +<para>Si vous voulez voir l'historique de plusieurs révisions sans avoir à
   1.353 +les énumérer, vous pouvez utiliser la <emphasis>\textit{range notation</emphasis>}
   1.354 +\footnote{NdT: Il n'est pas aisé de traduire ce terme, donc je le  %%%TODO : intervalle de numérotation ?
   1.355 +laisse en anglais} qui vous permet d'exprimer l'idée <quote>je veux toutes
   1.356 +les révisions entre $a$ et $b$, inclus</quote>.
   1.357 +<!-- &interaction.tour.log.range; -->
   1.358 +Mercurial respecte aussi l'ordre dans lequel vous spécifiez les
   1.359 +révisions, ainsi <command role="hg-cmd">hg log -r 2:4</command> affichera $2,3,4$ alors que
   1.360 +<command role="hg-cmd">hg log -r 4:2</command> affichera $4,3,2$.
   1.361 +</para>
   1.362 +
   1.363 +</sect2>
   1.364 +<sect2>
   1.365 +<title>Informations détaillées</title>
   1.366 +
   1.367 +
   1.368 +<para>Le résumé affiché par <command role="hg-cmd">hg log</command> est suffisant si vous savez déjà ce %%%TODO: je pense que le premier "si" est de trop : exact
   1.369 +que vous cherchez. En revanche, vous aurez probablement besoin de voir une description
   1.370 +complète du changement, ou une liste des fichiers modifiés si vous
   1.371 +cherchez à déterminer qu'un \textit{changeset} est bien celui que vous%%%TODO: les propositions sont mal construites : après un "si...." il faut une proposition sans "si... donc ici : "si ... recherchez", ben quoi ?
   1.372 +recherchez. L'option \hgopt{-v} de la commande <command role="hg-cmd">hg log</command> (ou
   1.373 +\hgopt{--verbose}) vous donne ces informations supplémentaires.
   1.374 +<!-- &interaction.tour.log-v; -->
   1.375 +</para>
   1.376 +
   1.377 +<para>Si vous voulez voir à la fois la description et le contenu d'une
   1.378 +modification, ajouter l'option <option role="hg-opt-log">-p</option> (ou <option role="hg-opt-log">--patch</option>).
   1.379 +Ceci affiche le contenu d'une modification comme un <emphasis>diff unifié</emphasis>
   1.380 +\footnote{NdT: \textit{unified diff}} (si vous n'avez jamais vu de diff
   1.381 +unifié avant, consultez la section <xref linkend="sec:mq:patch"/> pour un rapide
   1.382 +survol).
   1.383 +</para>
   1.384 +
   1.385 +<para><!-- &interaction.tour.log-vp; -->
   1.386 +</para>
   1.387 +
   1.388 +</sect2>
   1.389 +</sect1>
   1.390 +<sect1>
   1.391 +<title>Tout sur les options de commandes</title>
   1.392 +
   1.393 +
   1.394 +<para>Avant d'aller plus loin sur le fonctionnement des commandes de Mercurial,
   1.395 +étudions un moment comment elles fonctionnent de manière générale. Vous
   1.396 +trouverez ça probablement utile pour la suite de notre parcours.
   1.397 +</para>
   1.398 +
   1.399 +<para>Mercurial utilise une approche directe et cohérente pour interpréter %%%TODO: une manière d'approche ?
   1.400 +les options que vous passez aux commandes. Il suit une convention commune
   1.401 +à la plupart des systèmes Unix et Linux modernes.
   1.402 +</para>
   1.403 +
   1.404 +<itemizedlist>
   1.405 +<listitem><para>Chaque option a un nom complet. Par exemple, comme nous l'avons déjà
   1.406 +      vu, la commande <command role="hg-cmd">hg log</command> accepte l'option <option role="hg-opt-log">--rev</option>.%%%TODO: commande ou command e\hgcmd...?
   1.407 +</para>
   1.408 +</listitem>
   1.409 +<listitem><para>La plupart des options disposent de noms abrégés. Aussi, au lieu d'utiliser
   1.410 +  <option role="hg-opt-log">--rev</option>, vous pouvez utiliser <option role="hg-opt-log">-r</option>. (Les options qui
   1.411 +  n'ont pas de noms abrégés sont généralement rarement utilisées, pour cette raison).
   1.412 +</para>
   1.413 +</listitem>
   1.414 +<listitem><para>Les noms complets commencent par deux tirets (i.e. <option role="hg-opt-log">--rev</option>),
   1.415 +  alors que les options courtes commencent avec un seul (i.e. <option role="hg-opt-log">-r</option>).
   1.416 +</para>
   1.417 +</listitem>
   1.418 +<listitem><para>Les noms des options sont cohérents entre les commandes. Par exemple,
   1.419 +  chaque commande qui accepte un \textit{changeset ID} ou un numéro de révision
   1.420 +  accepte aussi <option role="hg-opt-log">-r</option> et <option role="hg-opt-log">--rev</option> comme arguments.
   1.421 +  %TODO: Small mistake here, shouldn't have log here... shouldn't it ?
   1.422 +</para>
   1.423 +</listitem></itemizedlist>
   1.424 +
   1.425 +<para>Dans les exemples de ce livre, j'utilise les noms abrégés plutôt que les noms
   1.426 +complets. Ceci est une préférence personnelle, pas une recommandation.
   1.427 +</para>
   1.428 +
   1.429 +<para>La plupart des commandes qui affichent une quelconque sortie à l'écran,
   1.430 +afficheront davantage avec l'option <option role="hg-opt-global">-v</option> (ou <option role="hg-opt-global">--verbose</option>), et
   1.431 +moins avec l'option <option role="hg-opt-global">-q</option> (ou <option role="hg-opt-global">--quiet</option>).
   1.432 +</para>
   1.433 +
   1.434 +</sect1>
   1.435 +<sect1>
   1.436 +<title>Faire et vérifier des modifications</title>
   1.437 +
   1.438 +<para>Maintenant que nous avons une bonne idée des commandes pour consulter
   1.439 +l'historique de Mercurial, regardons comment faire des modifications et
   1.440 +les examiner.
   1.441 +</para>
   1.442 +
   1.443 +
   1.444 +<para>La première chose que nous allons faire c'est isoler notre expérience dans
   1.445 +un dépôt à part. Nous allons utiliser la commande <command role="hg-cmd">hg clone</command>, mais nous
   1.446 +n'avons pas besoin de faire une copie de dépôt distant. Comme nous avons
   1.447 +déjà une copie locale, nous pouvons juste faire un clone de celle-ci à la
   1.448 +place. C'est beaucoup plus rapide que de faire une copie à travers le
   1.449 +réseau, et un dépôt cloné localement prend également moins d'espace disque.
   1.450 +</para>
   1.451 +
   1.452 +<para><!-- &interaction.tour.reclone; -->
   1.453 +</para>
   1.454 +
   1.455 +<para>On notera au passage qu'il est souvent considéré comme une bonne pratique
   1.456 +de conserver une copie <quote>immaculée</quote> du dépôt distant, à partir de laquelle
   1.457 +vous pourrez faire des copies locales temporaires pour créer des <quote>bacs à
   1.458 +sable</quote> pour chaque tâche sur laquelle vous souhaitez travailler. Ceci vous
   1.459 +permet de travailler sur plusieurs choses en parallèle, chacune isolée les
   1.460 +unes des autres en attendant que ces tâches soient finies et que vous soyez
   1.461 +prêt à les réintégrer. Parce que les copies locales sont peu coûteuses, il
   1.462 +est très rapide de créer ou détruire des dépôts dès que vous en avez besoin.
   1.463 +</para>
   1.464 +
   1.465 +<para>%% Note: la dernière phrase n'est pas une traduction littérale, mais je
   1.466 +%% pense qu'elle exprime plus clairement en français ce que veut dire son
   1.467 +%% équivalent anglais. : OUI
   1.468 +</para>
   1.469 +
   1.470 +<para>Dans notre dépôt <filename class="directory">my-hello</filename>, nous avons un fichier <filename>hello.c</filename>
   1.471 +qui contient le classique programme <quote>hello, world</quote>. Nous allons utiliser
   1.472 +l'ancienne et vénérable commande <command>sed</command> pour l'éditer afin qu'il
   1.473 +affiche une seconde ligne à l'écran. (J'utilise <command>sed</command> seulement parce
   1.474 +qu'il est ainsi facile d'écrire des exemples sous forme de script. Comme
   1.475 +vous n'avez pas ces contraintes, vous n'utiliserez probablement pas <command>sed</command>
   1.476 +mais plutôt votre éditeur de texte favori).
   1.477 +</para>
   1.478 +
   1.479 +<para><!-- &interaction.tour.sed; -->
   1.480 +</para>
   1.481 +
   1.482 +<para>La commande <command role="hg-cmd">hg status</command> de Mercurial nous dira de quels fichiers Mercurial
   1.483 +s'occupe au sein de ce dépôt.
   1.484 +<!-- &interaction.tour.status; -->
   1.485 +La commande <command role="hg-cmd">hg status</command> n'affiche rien sur la sortie pour quelques fichiers
   1.486 +mais une ligne commence par <quote><literal>M</literal></quote> for <filename>hello.c</filename>. À moins que
   1.487 +vous ne lui indiquiez de le faire, <command role="hg-cmd">hg status</command> n'affichera aucune sortie
   1.488 +pour les fichiers qui n'ont pas été modifiés.
   1.489 +</para>
   1.490 +
   1.491 +<para>Le caractère <quote><literal>M</literal></quote> indique que Mercurial a remarqué que nous avions
   1.492 +modifié le fichier <filename>hello.c</filename>. Nous n'avons pas besoin d'<emphasis>informer</emphasis>
   1.493 +Mercurial que nous allons modifier un fichier avant de le faire, ou que nous
   1.494 +venons de le modifier, il est capable de s'en rendre compte tout seul.
   1.495 +</para>
   1.496 +
   1.497 +<para>C'est pratique de savoir que nous avons modifié <filename>hello.c</filename>, mais il
   1.498 +serait encore plus pratique de savoir ce que nous avons modifié exactement. Pour
   1.499 +cela, nous avons la commande  <command role="hg-cmd">hg diff</command>.
   1.500 +</para>
   1.501 +
   1.502 +<para><!-- &interaction.tour.diff; -->
   1.503 +</para>
   1.504 +
   1.505 +</sect1>
   1.506 +<sect1>
   1.507 +<title>Enregister les modifications dans un nouveau \textit{changeset}</title>
   1.508 +
   1.509 +<para>Nous pouvons modifier des fichiers, compiler et tester nos modifications,
   1.510 +et utiliser les commandes <command role="hg-cmd">hg status</command> et <command role="hg-cmd">hg diff</command> pour voir les
   1.511 +modifications effectuées, jusqu'au moment où nous serons assez satisfaits
   1.512 +pour décider d'enregistrer notre travail dans un \textit{changeset}.
   1.513 +</para>
   1.514 +
   1.515 +<para>La commande <command role="hg-cmd">hg commit</command> vous laisse créer un nouveau \textit{changeset},
   1.516 +nous désignerons généralement cette opération par <quote>faire un commit</quote> ou
   1.517 +<quote>commiter</quote>\footnote{NdT: De mon expérience, la plupart des francophones
   1.518 +utilisent  régulièrement, à l'oral, cette expression, mais bien évidement
   1.519 +il ne s'agit pas d'un terme de terminologie correcte, ni même français.}
   1.520 +</para>
   1.521 +
   1.522 +<sect2>
   1.523 +<title>Définir le nom d'utilisateur</title>
   1.524 +
   1.525 +<para>Quand vous exécutez la commande <command role="hg-cmd">hg commit</command> pour la première fois, elle
   1.526 +n'est pas garantie de réussir. Mercurial enregistre votre nom et votre
   1.527 +adresse avec chaque modification que vous effectuez, de manière à ce que
   1.528 +vous soyez capable (ou d'autres le soient) de savoir qui a fait quelle
   1.529 +modification. Mercurial essaye automatiquement de découvrir un nom
   1.530 +d'utilisateur qui ait un minimum de sens pour effectuer l'opération
   1.531 +de \textit{commit} avec. Il va essayer chacune des méthodes suivantes,
   1.532 +dans l'ordre:
   1.533 +</para>
   1.534 +<orderedlist>
   1.535 +<listitem><para>Si vous spécifiez l'option <option role="hg-opt-commit">-u</option> avec la commande
   1.536 +  <command role="hg-cmd">hg commit</command>, suivi d'un nom d'utilisateur, ceci aura toujours la
   1.537 +  priorité sur les autres méthodes ci dessous.
   1.538 +</para>
   1.539 +</listitem>
   1.540 +<listitem><para>Si vous avez défini une variable d'environnement <envar>HGUSER</envar>,
   1.541 +  c'est cette valeur qui est alors utilisée.
   1.542 +</para>
   1.543 +</listitem>
   1.544 +<listitem><para>Si vous créez un fichier nommé <filename role="special">.hgrc</filename> dans votre
   1.545 +   répertoire \textit{home}, avec une entrée <envar role="rc-item-ui">username</envar>,
   1.546 +   c'est la valeur associée qui sera utilisée. Pour voir à quoi
   1.547 +   ressemble le contenu de ce fichier regardez la
   1.548 +   section <xref linkend="sec:tour-basic:username"/> ci-dessous.
   1.549 +</para>
   1.550 +</listitem>
   1.551 +<listitem><para>Si vous avez défini une variable d'environnement <envar>EMAIL</envar>
   1.552 +  celle ci sera utilisée ensuite.
   1.553 +</para>
   1.554 +</listitem>
   1.555 +<listitem><para>Enfin, Mercurial interrogera votre système pour trouver votre
   1.556 +  nom d'utilisateur local ainsi que le nom de la machine hôte, et il
   1.557 +  fabriquera un nom d'utilisateur à partir de ces données. Comme il arrive
   1.558 +  souvent que ce genre de noms soit totalement inutile, il vous
   1.559 +  préviendra en affichant un message d'avertissement.
   1.560 +</para>
   1.561 +</listitem></orderedlist>
   1.562 +
   1.563 +<para>Si tous ces mécanismes échouent, Mercurial n'exécutera pas la commande,
   1.564 +affichant un message d'erreur. Dans ce cas, il ne vous laissera pas
   1.565 +effectuer de \textit{commit} tant que vous n'aurez pas défini un nom
   1.566 +d'utilisateur.
   1.567 +</para>
   1.568 +
   1.569 +<para>Vous devriez penser à utiliser la variable d'environement <envar>HGUSER</envar>
   1.570 +et l'option <option role="hg-opt-commit">-u</option> comme moyen pour \emph{changer le nom
   1.571 +d'utilisateur} par défaut. Pour une utilisation normale, la manière la plus
   1.572 +simple et robuste d'opérer est de créer un fichier <filename role="special">.hgrc</filename>,
   1.573 +voir ci-dessous pour les détails à ce sujet.
   1.574 +</para>
   1.575 +
   1.576 +<sect3>
   1.577 +<title>Créer un fichier de configuration pour Mercurial</title>
   1.578 +<para>\label{sec:tour-basic:username}
   1.579 +</para>
   1.580 +
   1.581 +<para>Pour définir un nom d'utilisateur, utilisez votre éditeur de texte favori
   1.582 +pour créer un fichier <filename role="special">.hgrc</filename> dans votre répertoire \textit{home}.
   1.583 +Mercurial va utiliser ce fichier pour retrouver votre configuration personnelle.
   1.584 +Le contenu initial devrait ressembler à ceci:
   1.585 +</para>
   1.586 +<programlisting>
   1.587 +<para>  # This is a Mercurial configuration file.
   1.588 +  [ui]
   1.589 +  username = Firstname Lastname &lt;email.address@domain.net&gt;
   1.590 +</para>
   1.591 +</programlisting>
   1.592 +<para>La ligne avec <literal>[ui]</literal> commence une <emphasis>section</emphasis> du fichier de
   1.593 +configuration, ainsi la ligne <quote><literal>username = ...</literal></quote> signifie <quote>
   1.594 +définir la valeur de l'élément <literal>username</literal> dans la section
   1.595 +<literal>ui</literal></quote>. Une section continue jusqu'à ce qu'une nouvelle
   1.596 +commence, ou que la fin du fichier soit atteinte. Mercurial ignore
   1.597 +les lignes vides et traite tout texte situé à la suite d'un
   1.598 +<quote><literal>#</literal></quote> jusqu'à la fin de la ligne comme un commentaire.
   1.599 +</para>
   1.600 +
   1.601 +</sect3>
   1.602 +<sect3>
   1.603 +<title>Choisir un nom d'utilisateur</title>
   1.604 +
   1.605 +<para>Vous pouvez utiliser n'importe quelle valeur pour votre <literal>username</literal>,
   1.606 +car cette information est destinée à d'autres personnes et non à être
   1.607 +interprétée par Mercurial. La convention que la plupart des personnes
   1.608 +&lt;&lt;&lt;&lt;&lt;&lt;&lt; local
   1.609 +suivent est d'utiliser leurs noms suivies de leurs adresses emails,
   1.610 +comme montrée ci-dessus:
   1.611 +</para>
   1.612 +
   1.613 +<note>
   1.614 +<para>  Le mécanisme interne du serveur \textit{web} intégré à Mercurial,
   1.615 +  masque les adresses emails, pour rendre plus difficile leurs
   1.616 +  récupérations par les outils utilisés par les \textit{spammmers}.
   1.617 +  Ceci réduit la probabilité que de recevoir encore plus de
   1.618 +  \textit{spam} si vous vous publiez un dépôt sur internet.
   1.619 +</para>
   1.620 +</note>
   1.621 +
   1.622 +</sect3>
   1.623 +</sect2>
   1.624 +<sect2>
   1.625 +<title>Rédiger un message de \textit{commit}</title>
   1.626 +
   1.627 +<para>Lorsqu'on effectue une opération de \textit{commit}, Mercurial
   1.628 +lance automatiquement un éditeur de texte pour permettre de saisir
   1.629 +un message qui décrira les modifications effectuées dans ce
   1.630 +\textit{changeset}. Ce message est nommé le \emph{message de
   1.631 +\textit{commit}}. Ce sera un enregistrement pour tout lecteur
   1.632 +expliquant le pourquoi et le comment de vos modifications, et il sera
   1.633 +affiché par la commande <command role="hg-cmd">hg log</command>.
   1.634 +<!-- &interaction.tour.commit; -->
   1.635 +</para>
   1.636 +
   1.637 +<para>L'éditeur que la commande <command role="hg-cmd">hg commit</command> déclenche ne contiendra
   1.638 +qu'une ligne vide suivi d'un certain nombre de lignes commençant
   1.639 +par <quote><literal>HG:</literal></quote>.
   1.640 +</para>
   1.641 +<programlisting>
   1.642 +<para>  <emphasis>empty line</emphasis>
   1.643 +  HG: changed hello.c
   1.644 +</para>
   1.645 +</programlisting>
   1.646 +<para>Mercurial ignore les lignes qui commencent avec <quote><literal>HG:</literal></quote>, il
   1.647 +ne les utilise que pour nous indiquer quels fichiers modifiés il se
   1.648 +prépare à \textit{commiter}. Modifier ou effacer ces lignes n'a
   1.649 +aucune conséquence sur l'opération de \textit{commit}.
   1.650 +</para>
   1.651 +
   1.652 +</sect2>
   1.653 +<sect2>
   1.654 +<title>Rédiger un message \textit{approprié}</title>
   1.655 +
   1.656 +<para>Comme <command role="hg-cmd">hg log</command> n'affiche que la première ligne du message de
   1.657 +\textit{commit} par défaut, il est souvent considéré comme une bonne
   1.658 +pratique de rédiger des messages de \textit{commit} qui tiennent
   1.659 +sur une seule ligne. Voilà un exemple concret de message de
   1.660 +\textit{commit} qui <emphasis>ne suit pas</emphasis> cette directive, et qui a donc
   1.661 +un résumé peu lisible.
   1.662 +</para>
   1.663 +
   1.664 +<programlisting>
   1.665 +<para>  changeset:   73:584af0e231be
   1.666 +  user:        Censored Person &lt;censored.person@example.org&gt;
   1.667 +  date:        Tue Sep 26 21:37:07 2006 -0700
   1.668 +  summary:     include buildmeister/commondefs.   Add an exports and install
   1.669 +</para>
   1.670 +</programlisting>
   1.671 +
   1.672 +<para>A ce sujet, il faut noter qu'il n'existe pas de règle absolue dans ce
   1.673 +domaine. Mercurial lui-même n'interprète pas les contenus des messages
   1.674 +de \textit{commit}, ainsi votre projet est libre de concevoir différentes
   1.675 +politiques de mise en page des messages.
   1.676 +</para>
   1.677 +
   1.678 +<para>Ma préférence personnelle va au message court, mais informatif, qui offre
   1.679 +des précisions supplémentaires par rapport à ce que pourrait m'apprendre une commande
   1.680 +<command role="hg-cmd">hg log --patch</command>.
   1.681 +</para>
   1.682 +
   1.683 +</sect2>
   1.684 +<sect2>
   1.685 +<title>Annuler un \textit{commit}</title>
   1.686 +
   1.687 +<para>Si, en rédigeant le message, vous décidez que finalement vous ne
   1.688 +voulez pas effectuer ce \textit{commit}, il suffit de quitter simplement
   1.689 +l'éditeur sans sauver. Ceci n'aura aucune conséquence sur le dépôt ou
   1.690 +les fichiers de l'espace de travail.
   1.691 +</para>
   1.692 +
   1.693 +<para>Si vous exécuter la commande <command role="hg-cmd">hg commit</command> sans aucun argument, elle
   1.694 +enregistre toutes les modifications que vous avez faites, comme le montre
   1.695 +les commandes <command role="hg-cmd">hg status</command> et <command role="hg-cmd">hg diff</command>.
   1.696 +</para>
   1.697 +
   1.698 +</sect2>
   1.699 +<sect2>
   1.700 +<title>Admirer votre travail</title>
   1.701 +
   1.702 +<para>Une fois que votre \textit{commit} est terminé, vous pouvez utiliser
   1.703 +la commande <command role="hg-cmd">hg tip</command> pour afficher le \textit{changeset} que nous
   1.704 +venons de créer. Cette commande produit une sortie à l'écran qui est
   1.705 +identique à celle du <command role="hg-cmd">hg log</command>, mais qui n'affiche que la dernière
   1.706 +révision du dépôt.
   1.707 +<!-- &interaction.tour.tip; -->
   1.708 +On fait couramment référence à la dernière révision du dépôt comme
   1.709 +étant la révision \textit{tip}, ou plus simplement le \textit{tip}.
   1.710 +</para>
   1.711 +
   1.712 +</sect2>
   1.713 +</sect1>
   1.714 +<sect1>
   1.715 +<title>Partager ses modifications</title>
   1.716 +
   1.717 +<para>Nous avons mentionné plus haut que les dépôts de Mercurial
   1.718 +sont autosuffisants. Ce qui signifie que le \textit{changeset}
   1.719 +que vous venez de créer existe seulement dans votre répertoire
   1.720 +<filename class="directory">my-hello</filename>. Étudions comment propager cette modification
   1.721 +dans d'autres dépôts.
   1.722 +</para>
   1.723 +
   1.724 +<sect2>
   1.725 +<title>Récupérer les modifications d'autres dépôts</title>
   1.726 +<para>\label{sec:tour:pull}
   1.727 +</para>
   1.728 +
   1.729 +<para>Pour commencer, construisons un clone de notre dépôt <filename class="directory">hello</filename>
   1.730 +qui ne contiendra pas le changement que nous venons d'effectuer. Nous
   1.731 +l'appellerons notre dépôt temporaire <filename class="directory">hello-pull</filename>.
   1.732 +</para>
   1.733 +
   1.734 +<para><!-- &interaction.tour.clone-pull; -->
   1.735 +</para>
   1.736 +
   1.737 +<para>Nous allons utiliser la commande <command role="hg-cmd">hg pull</command> pour apporter les
   1.738 +modifications depuis <filename class="directory">my-hello</filename> dans <filename class="directory">hello-pull</filename>.
   1.739 +Néanmoins, récupérer aveuglement des modifications depuis un dépôt
   1.740 +a quelque chose d'un peu effrayant. Mercurial propose donc une
   1.741 +commande <command role="hg-cmd">hg incoming</command> qui permet de savoir quelles modifications
   1.742 +la commande <command role="hg-cmd">hg pull</command> <emphasis>pourrait</emphasis> entraîner dans notre dépôt,
   1.743 +et ceci sans effectuer réellement de modification dessus.
   1.744 +<!-- &interaction.tour.incoming; -->
   1.745 +(Bien évidement, quelqu'un pourrait ajouter des modifications
   1.746 +supplémentaires sur le dépôt que nous étudions avec <command role="hg-cmd">hg incoming</command>,
   1.747 +avant que nous ayons effectué notre <command role="hg-cmd">hg pull</command>, avec comme
   1.748 +triste conséquence que nous aurons récupéré des modifications que
   1.749 +nous n'attendions pas.)
   1.750 +</para>
   1.751 +
   1.752 +<para>Apporter les modifications rapatriées dans un dépôt se résume donc
   1.753 +à exécuter la commande <command role="hg-cmd">hg pull</command>, et préciser depuis quel dépôt
   1.754 +effectuer le <command role="hg-cmd">hg pull</command>.
   1.755 +<!-- &interaction.tour.pull; -->
   1.756 +</para>
   1.757 +
   1.758 +<para>Comme vous le voyez avec une sortie avant et après de la commande
   1.759 +<command role="hg-cmd">hg tip</command>, nous avons réussi à récupérer aisément les modifications
   1.760 +dans notre dépôt. Il reste néanmoins quelque chose à faire avant de
   1.761 +placer ces modifications dans l'espace de travail.
   1.762 +</para>
   1.763 +
   1.764 +</sect2>
   1.765 +<sect2>
   1.766 +<title>Mise à jour de l'espace de travail</title>
   1.767 +
   1.768 +<para>Nous avons jusqu'à maintenant grossièrement définie la relation
   1.769 +entre un dépôt et un espace de travail. La commande <command role="hg-cmd">hg pull</command> que
   1.770 +nous avons exécutée dans la section <xref linkend="sec:tour:pull"/> a apporté
   1.771 +des modifications, que nous avons vérifiées, dans notre dépôt, mais
   1.772 +il n'y a aucune trace de ces modifications dans notre espace de travail.
   1.773 +En effet, <command role="hg-cmd">hg pull</command> ne touche pas (par défaut) à l'espace de
   1.774 +travail. C'est la commande <command role="hg-cmd">hg update</command> qui s'en charge.
   1.775 +<!-- &interaction.tour.update; -->
   1.776 +</para>
   1.777 +
   1.778 +<para>Il peut sembler un peu étrange que la commande <command role="hg-cmd">hg pull</command> ne mette
   1.779 +pas à jour l'espace de travail automatiquement. Il y a en fait une
   1.780 +très bonne raison à cela : vous pouvez utilisez la commande
   1.781 +</para>
   1.782 +
   1.783 +<para><command role="hg-cmd">hg update</command> pour mettre à jour votre espace de travail à l'état
   1.784 +dans lequel il était à <emphasis>n'importe quelle révision</emphasis> de l'historique
   1.785 +du dépôt. Si vous aviez un espace de travail contenant une ancienne
   1.786 +révision&emdash;pour chercher l'origine d'un \textit{bug}, par exemple&emdash;et
   1.787 +que vous effectuiez un <command role="hg-cmd">hg pull</command> qui mettrait à jour automatiquement
   1.788 +votre espace de travail, vous ne seriez probablement pas très satisfait.
   1.789 +</para>
   1.790 +
   1.791 +<para>Néanmoins, comme les opérations de \textit{pull} sont très souvent
   1.792 +suivies d'un \textit{update}, Mercurial vous permet de combiner les
   1.793 +deux aisément en passant l'option <option role="hg-opt-pull">-u</option> à la commande
   1.794 +<command role="hg-cmd">hg pull</command>
   1.795 +</para>
   1.796 +<programlisting>
   1.797 +<para>  hg pull -u
   1.798 +</para>
   1.799 +</programlisting>
   1.800 +
   1.801 +<para>Si vous étudiez de nouveau la sortie de la commande <command role="hg-cmd">hg pull</command> dans
   1.802 +la section <xref linkend="sec:tour:pull"/> quand nous l'avons exécutée sans l'option
   1.803 +<option role="hg-opt-pull">-u</option>, vous pouvez constater qu'elle a affiché un rappel assez
   1.804 +utile : vous devez encore effectuer une opération pour mettre à jour
   1.805 +votre espace de travail:
   1.806 +</para>
   1.807 +
   1.808 +<programlisting>
   1.809 +<para>  (run 'hg update' to get a working copy)
   1.810 +</para>
   1.811 +</programlisting>
   1.812 +
   1.813 +<para>Pour découvrir sur quelle révision de l'espace de travail on est, utilisez
   1.814 +la commande <command role="hg-cmd">hg parents</command>.
   1.815 +<!-- &interaction.tour.parents; -->
   1.816 +Si vous regardez de nouveau le dessin <xref linkend="fig:tour-basic:history"/>, vous
   1.817 +&lt;&lt;&lt;&lt;&lt;&lt;&lt; local
   1.818 +verrez les flèches reliant entre eux les \textit{changeset}. Le nœud
   1.819 +d'où la flèche <emphasis>part</emphasis> est dans chaque cas un parent,
   1.820 +et le nœud où la flèche <emphasis>arrive</emphasis> est un enfant.
   1.821 +</para>
   1.822 +
   1.823 +<para>L'espace de travail a un parent de la même manière, c'est ce \textit{changeset}
   1.824 +que l'espace de travail contient à ce moment.
   1.825 +%%%TODO : difficile à comprendre : l'espace de travail a un parent, de la même manière, c'est ce changeset que l'espace...
   1.826 +</para>
   1.827 +
   1.828 +<para>Pour mettre à jour l'espace de travail d'une révision particulière,
   1.829 +indiquez un numéro de révision ou un \textit{changeset ID} à la commande
   1.830 +<command role="hg-cmd">hg update</command>.
   1.831 +<!-- &interaction.tour.older; -->
   1.832 +Si vous ne précisez pas de manière explicite de numéro de révision
   1.833 +la commande <command role="hg-cmd">hg update</command> mettra à jour votre espace de travail avec
   1.834 +le contenu de la révsion \textit{tip}, comme montré dans l'exemple
   1.835 +ci dessus lors du second appel à <command role="hg-cmd">hg update</command>.
   1.836 +</para>
   1.837 +
   1.838 +</sect2>
   1.839 +<sect2>
   1.840 +<title>Transférer les modifications à un autre dépôt</title>
   1.841 +
   1.842 +<para>Mercurial vous laisse transférer les modifications à un autre
   1.843 +dépôt, depuis votre dépôt actuel. Comme dans l'exemple du
   1.844 +<command role="hg-cmd">hg pull</command> ci-dessus, nous allons créer un dépôt temporaire
   1.845 +vers lequel transférer\footnote{NdT: Les francophones disent souvent
   1.846 +<quote>pousser</quote> tout simplement} nos modifications.
   1.847 +<!-- &interaction.tour.clone-push; -->
   1.848 +La commande <command role="hg-cmd">hg outgoing</command> nous indique quels changements nous
   1.849 +allons transférer vers l'autre serveur ?
   1.850 +<!-- &interaction.tour.outgoing; -->
   1.851 +Et la commande <command role="hg-cmd">hg push</command> effectue réellement le transfert.
   1.852 +<!-- &interaction.tour.push; -->
   1.853 +Comme avec <command role="hg-cmd">hg pull</command>, la commande <command role="hg-cmd">hg push</command> ne met pas à jour
   1.854 +le répertoire de travail du dépôt dans lequel il transfère les
   1.855 +modifications. (À l'inverse de <command role="hg-cmd">hg pull</command>, <command role="hg-cmd">hg push</command> ne fournit
   1.856 +pas d'option <literal>-u</literal> pour forcer la mise à jour de l'espace
   1.857 +de travail cible).
   1.858 +</para>
   1.859 +
   1.860 +<para>Qu'est ce qui se passe lorsque vous essayez de récupérer ou de transférer
   1.861 +vos modifications et que le dépôt cible a déjà reçu ces modifications ?
   1.862 +Rien de bien excitant.
   1.863 +<!-- &interaction.tour.push.nothing; -->
   1.864 +</para>
   1.865 +
   1.866 +</sect2>
   1.867 +<sect2>
   1.868 +<title>Partager ses modifications à travers le réseau</title>
   1.869 +
   1.870 +<para>Les commandes que nous avons étudiées dans les sections précédentes
   1.871 +ne sont pas limitées aux dépôt locaux. Chacune fonctionne de la même
   1.872 +manière à travers une connexion réseau, il suffit de lui passer une
   1.873 +URL à la place d'un chemin de fichier local.
   1.874 +</para>
   1.875 +
   1.876 +<para><!-- &interaction.tour.outgoing.net; -->
   1.877 +Dans cet exemple, nous allons voir quels changements nous pourrions
   1.878 +transférer vers le dépôt distant, mais le dépôt est, de manière tout
   1.879 +à fait compréhensible, pas configuré pour accepter des modifications
   1.880 +d'utilisateurs anonymes.
   1.881 +<!-- &interaction.tour.push.net; -->
   1.882 +</para>
   1.883 +
   1.884 +</sect2>
   1.885 +</sect1>
   1.886 +</chapter>
   1.887 +
   1.888 +<!--
   1.889 +local variables: 
   1.890 +sgml-parent-document: ("00book.xml" "book" "chapter")
   1.891 +end:
   1.892 +-->
   1.893 \ No newline at end of file