hgbook

changeset 947:f2670f1d13f1

Work in progress in tour-basic...
author Romain PELISSE <belaran@gmail.com>
date Mon Feb 16 20:18:04 2009 +0100 (2009-02-16)
parents 1f2044943861
children afdc168fa06c
files fr/tour-basic.tex
line diff
     1.1 --- a/fr/tour-basic.tex	Mon Feb 16 18:51:52 2009 +0100
     1.2 +++ b/fr/tour-basic.tex	Mon Feb 16 20:18:04 2009 +0100
     1.3 @@ -304,121 +304,135 @@
     1.4  à la plupart des systèmes Unix et Linux modernes.
     1.5  
     1.6  \begin{itemize}
     1.7 -\item Every option has a long name.  For example, as we've already
     1.8 -  seen, the \hgcmd{log} command accepts a \hgopt{log}{--rev} option.
     1.9 -\item Most options have short names, too.  Instead of
    1.10 -  \hgopt{log}{--rev}, we can use \hgopt{log}{-r}.  (The reason that
    1.11 -  some options don't have short names is that the options in question
    1.12 -  are rarely used.)
    1.13 -\item Long options start with two dashes (e.g.~\hgopt{log}{--rev}),
    1.14 -  while short options start with one (e.g.~\hgopt{log}{-r}).
    1.15 -\item Option naming and usage is consistent across commands.  For
    1.16 -  example, every command that lets you specify a changeset~ID or
    1.17 -  revision number accepts both \hgopt{log}{-r} and \hgopt{log}{--rev}
    1.18 -  arguments.
    1.19 +\item Chaque option a un nom complet. Par exemple, comme nous l'avons déjà
    1.20 +      vu, la command e\hgcmd{log} accepte l'option \hgopt{log}{--rev}.
    1.21 +\item La plupart des options dispose de noms abrégés, aussi. Au lieu d'utiliser
    1.22 +  \hgopt{log}{--rev}, vous pouvez utiliser \hgopt{log}{-r}. (Les options qui
    1.23 +  n'ont pas de noms abrégés sont généralement rarement utilisés, c'est pour ça).
    1.24 +\item Les noms complets commence par deux tirets (i.e.~\hgopt{log}{--rev}),
    1.25 +  alors que les options courtes commencent avec un seul (i.e.~\hgopt{log}{-r}).
    1.26 +\item Les noms des options sont cohérent entre les commandes. Par exemple, 
    1.27 +  chaque commande qui accepte un \textit{changeset~ID} ou une numéro de révision
    1.28 +  accepte aussi \hgopt{log}{-r} et \hgopt{log}{--rev} comme arguments.
    1.29 +  %TODO: Small mistake here, shouldn't have log here... shouldn't it ?
    1.30  \end{itemize}
    1.31 -In the examples throughout this book, I use short options instead of
    1.32 -long.  This just reflects my own preference, so don't read anything
    1.33 -significant into it.
    1.34 -
    1.35 -Most commands that print output of some kind will print more output
    1.36 -when passed a \hggopt{-v} (or \hggopt{--verbose}) option, and less
    1.37 -when passed \hggopt{-q} (or \hggopt{--quiet}).
    1.38 -
    1.39 -\section{Making and reviewing changes}
    1.40 -
    1.41 -Now that we have a grasp of viewing history in Mercurial, let's take a
    1.42 -look at making some changes and examining them.
    1.43 -
    1.44 -The first thing we'll do is isolate our experiment in a repository of
    1.45 -its own.  We use the \hgcmd{clone} command, but we don't need to
    1.46 -clone a copy of the remote repository.  Since we already have a copy
    1.47 -of it locally, we can just clone that instead.  This is much faster
    1.48 -than cloning over the network, and cloning a local repository uses
    1.49 -less disk space in most cases, too.
    1.50 +
    1.51 +Dans les exemples de ce libre, j'utilise les noms abrégés plutôt que les noms
    1.52 +complet. Ceci est une préférence personnelle, par une recommandation.
    1.53 +
    1.54 +La plupart des commandes qui affiche une quelquonque sortie à l'écran,
    1.55 +afficheront plus avec l'option \hggopt{-v} (ou \hggopt{--verbose}), et
    1.56 +mois avec l'option \hggopt{-q} (ou \hggopt{--quiet}).
    1.57 +
    1.58 +\section{Faire et vérifier des modifications}
    1.59 +
    1.60 +Maintenant que nous avons une bonne idée de commande consulter l'historique
    1.61 +de Mercurial, regardons comment faire des modifications et les examiner.
    1.62 +
    1.63 +La première chose que nous allons faire c'est isoler notre expérience dans
    1.64 +un dépôt à part. Nous allons utiliser la commande \hgcmd{clone}, mais nous
    1.65 +n'avons pas besoin de faire une copie de dépôt distant. Comme nous avons 
    1.66 +déjà une copie locale, nous pouvons juste faire un clone de celle ci à la 
    1.67 +place. C'est beaucoup plus rapide que de faire une copie à travers le 
    1.68 +réseau, et un dépôt cloné localement prend moins d'espace disques aussi.
    1.69 +
    1.70  \interaction{tour.reclone}
    1.71 -As an aside, it's often good practice to keep a ``pristine'' copy of a
    1.72 -remote repository around, which you can then make temporary clones of
    1.73 -to create sandboxes for each task you want to work on.  This lets you
    1.74 -work on multiple tasks in parallel, each isolated from the others
    1.75 -until it's complete and you're ready to integrate it back.  Because
    1.76 -local clones are so cheap, there's almost no overhead to cloning and
    1.77 -destroying repositories whenever you want.
    1.78 -
    1.79 -In our \dirname{my-hello} repository, we have a file
    1.80 -\filename{hello.c} that contains the classic ``hello, world'' program.
    1.81 -Let's use the ancient and venerable \command{sed} command to edit this
    1.82 -file so that it prints a second line of output.  (I'm only using
    1.83 -\command{sed} to do this because it's easy to write a scripted example
    1.84 -this way.  Since you're not under the same constraint, you probably
    1.85 -won't want to use \command{sed}; simply use your preferred text editor to
    1.86 -do the same thing.)
    1.87 +
    1.88 +On notera au passage qu'il est souvent considéré comme une bonne pratique
    1.89 +de conserver une copie ``immaculée'' du dépôt distant, à partir de laquelle
    1.90 +vous pourrez faire des copies locales temporaires pour créer des ``bacs à 
    1.91 +sable'' pour chaque tâche sur laquelle vous souhaitez travailler. Ceci vous
    1.92 +permet de travailler sur plusieur choses en parallèle, chacune isolée les 
    1.93 +unes des autres en attendant que ces tâches soient fini et que vous soyez
    1.94 +prêt à les réintégrer. Parce que les copies locales sont peu coûteuse, il
    1.95 +est très rapide de créer ou détruire des dépôts dès que vous en avez besoin.
    1.96 +
    1.97 +%% Note: la dernière phrase n'est pas une traduction littérale, mais je
    1.98 +%% pense qu'elle exprime plus clairement en français ce que veut dire son 
    1.99 +%% équivalent anglais.
   1.100 +
   1.101 +Dans notre dépôt \dirname{my-hello}, nous avons un fichier \filename{hello.c}
   1.102 +qui contient le classique programme ``hello, world''. Nous allons utiliser 
   1.103 +l'ancienne et vénérable commande \command{sed} pour l'éditer pour qu'il 
   1.104 +affiche une seconde ligne à l'écran. (J'utilise \command{sed} seulement parce
   1.105 +qu'il est facile d'écrire des exemples sous formes de script ainsi. Comme 
   1.106 +vous n'avez pas ces contraintes, vous n'utiliserez probablement pas \command{sed}
   1.107 +mais plutôt votre éditeur de texte favori). 
   1.108 +
   1.109  \interaction{tour.sed}
   1.110  
   1.111 -Mercurial's \hgcmd{status} command will tell us what Mercurial knows
   1.112 -about the files in the repository.
   1.113 +La commande \hgcmd{status} de Mercurial nous dira de quels fichiers Mercurial
   1.114 +s'occupe au sein de ce dépôt.
   1.115  \interaction{tour.status}
   1.116 -The \hgcmd{status} command prints no output for some files, but a line
   1.117 -starting with ``\texttt{M}'' for \filename{hello.c}.  Unless you tell
   1.118 -it to, \hgcmd{status} will not print any output for files that have
   1.119 -not been modified.  
   1.120 -
   1.121 -The ``\texttt{M}'' indicates that Mercurial has noticed that we
   1.122 -modified \filename{hello.c}.  We didn't need to \emph{inform}
   1.123 -Mercurial that we were going to modify the file before we started, or
   1.124 -that we had modified the file after we were done; it was able to
   1.125 -figure this out itself.
   1.126 -
   1.127 -It's a little bit helpful to know that we've modified
   1.128 -\filename{hello.c}, but we might prefer to know exactly \emph{what}
   1.129 -changes we've made to it.  To do this, we use the \hgcmd{diff}
   1.130 -command.
   1.131 +La commande \hgcmd{status} n'affiche rien sur la sortie pour quelques fichiers
   1.132 +mais une ligne commence par ``\texttt{M}'' for \filename{hello.c}. À moins que
   1.133 +vous ne lui indiquiez de le faire, \hgcmd{status} n'affichera aucune sortie 
   1.134 +pour les fichiers qui n'ont pas été modifiés.
   1.135 +
   1.136 +Le caractère ``\texttt{M}'' indique que Mercurial a remarqué que nous avions
   1.137 +modifié le fichier \filename{hello.c}. Nous n'avons pas besoin d'\emph{informer}
   1.138 +Mercurial que nous allons modifier un fichier avant de le faire, ou que nous 
   1.139 +venons de le modifier, il est capable de s'en rendre compte tout seul.
   1.140 +
   1.141 +C'est pratique de savoir que nous avons modifié \filename{hello.c}, mais il
   1.142 +serait encore plus pratique de savoir ce que nous avons modifié exactement. Pour
   1.143 +cela, nous avons la commande  \hgcmd{diff}.
   1.144 +
   1.145  \interaction{tour.diff}
   1.146  
   1.147 -\section{Recording changes in a new changeset}
   1.148 -
   1.149 -We can modify files, build and test our changes, and use
   1.150 -\hgcmd{status} and \hgcmd{diff} to review our changes, until we're
   1.151 -satisfied with what we've done and arrive at a natural stopping point
   1.152 -where we want to record our work in a new changeset.
   1.153 -
   1.154 -The \hgcmd{commit} command lets us create a new changeset; we'll
   1.155 -usually refer to this as ``making a commit'' or ``committing''.  
   1.156 -
   1.157 -\subsection{Setting up a username}
   1.158 -
   1.159 -When you try to run \hgcmd{commit} for the first time, it is not
   1.160 -guaranteed to succeed.  Mercurial records your name and address with
   1.161 -each change that you commit, so that you and others will later be able
   1.162 -to tell who made each change.  Mercurial tries to automatically figure
   1.163 -out a sensible username to commit the change with.  It will attempt
   1.164 -each of the following methods, in order:
   1.165 +\section{Enregister les modifications dans un nouveau \textit{changeset}}
   1.166 +
   1.167 +Nous pouvons modifier des fichiers, compiler et tester nos modifications,
   1.168 +et utiliser les commandes \hgcmd{status} and \hgcmd{diff} pour voir les
   1.169 +modifications effectués, jusqu'au moment où nous serons assez satisfait
   1.170 +pour décider d'enregister notre travail dans un \textit{changeset}.
   1.171 +
   1.172 +La commande \hgcmd{commit} vous laisse créer un nouveau \textit{changeset},
   1.173 +nous désignerons généralement cette opération par ``faire un commit'' ou
   1.174 +``commité''\footnote{NdT: De mon expérience, la plupart des francophones 
   1.175 +utilisent  régulièrement, à l'oral, cette expression, mais bien évidement
   1.176 +il ne s'agit pas d'un terme terminologiquement correct, ni même français.}
   1.177 +
   1.178 +\subsection{Définir le nom d'utilisateur}
   1.179 +
   1.180 +Quand vous exécuter la commande \hgcmd{commit} pour la première fois, elle
   1.181 +n'est pas garanti de réussir. Mercurial enregistre votre nom et votre 
   1.182 +adresse avec chaque modification que vous effectuez, de manière à ce que
   1.183 +vous soyez capable (ou d'autres le soient) de savoir qui a fait quelle
   1.184 +modification. Mercurial essaye automatiquement de découvrir un nom 
   1.185 +d'utilisateur qui est un minimum de sense pour effectuer l'opération
   1.186 +de \textit{commit} avec. Il va essayer chacune des méthodes suivantes,
   1.187 +dans l'ordre:
   1.188  \begin{enumerate}
   1.189 -\item If you specify a \hgopt{commit}{-u} option to the \hgcmd{commit}
   1.190 -  command on the command line, followed by a username, this is always
   1.191 -  given the highest precedence.
   1.192 -\item If you have set the \envar{HGUSER} environment variable, this is
   1.193 -  checked next.
   1.194 -\item If you create a file in your home directory called
   1.195 -  \sfilename{.hgrc}, with a \rcitem{ui}{username} entry, that will be
   1.196 -  used next.  To see what the contents of this file should look like,
   1.197 -  refer to section~\ref{sec:tour-basic:username} below.
   1.198 -\item If you have set the \envar{EMAIL} environment variable, this
   1.199 -  will be used next.
   1.200 -\item Mercurial will query your system to find out your local user
   1.201 -  name and host name, and construct a username from these components.
   1.202 -  Since this often results in a username that is not very useful, it
   1.203 -  will print a warning if it has to do this.
   1.204 +\item Si vous spécifiez l'option \hgopt{commit}{-u} avec la commande 
   1.205 +  \hgcmd{commit}, suivi d'un nom d'utilisateur, ceci aura toujours la 
   1.206 +  priorité sur les autres méthodes ci dessous.
   1.207 +\item Si vous avez défini une variable d'environement \envar{HGUSER}, 
   1.208 +  c'est cette valeur qui est alors utilisée.
   1.209 +\item Si vous créer un fichier nommé \sfilename{.hgrc} dans votre 
   1.210 +   répertoire \textit{home}, avec une entrée \rcitem{ui}{username}, 
   1.211 +   c'est la valeur associée qui sera utilisée. Pour voir à quoi 
   1.212 +   ressemble le contenu de ce fichier regardez la 
   1.213 +   section~\ref{sec:tour-basic:username} ci dessous.
   1.214 +\item Si vous avez défini une variable d'environement \envar{EMAIL}
   1.215 +  celle ci sera utilisée ensuite.
   1.216 +\item Enfin, Mercurial interrogera votre système pour trouver votre
   1.217 +  nom d'utilisateur local ainsi que le nom de la machine hôte, et il 
   1.218 +  un nom d'utilisateur à partir de ces composants. Comme il arrive
   1.219 +  souvent que ce genre de noms soit totalement inutile, il vous 
   1.220 +  préviendra en affichant un message d'avertissement.
   1.221  \end{enumerate}
   1.222 -If all of these mechanisms fail, Mercurial will fail, printing an
   1.223 -error message.  In this case, it will not let you commit until you set
   1.224 -up a username.
   1.225 -
   1.226 -You should think of the \envar{HGUSER} environment variable and the
   1.227 -\hgopt{commit}{-u} option to the \hgcmd{commit} command as ways to
   1.228 -\emph{override} Mercurial's default selection of username.  For normal
   1.229 -use, the simplest and most robust way to set a username for yourself
   1.230 -is by creating a \sfilename{.hgrc} file; see below for details.
   1.231 +
   1.232 +Si tous ces méchanismes échouent, Mercurial n'exécutera pas la commande,
   1.233 +affichant un message d'erreur. Dans ce cas, il ne vous laissera pas 
   1.234 +effectuer de \textit{commit} tant que vous n'aurez pas défini un nom
   1.235 +d'utilisateur.
   1.236 +
   1.237 +Vous devriez penser à utiliser la variable d'environement \envar{HGUSER} 
   1.238 +et l'option \hgopt{commit}{-u} comme moyen pour \emph{changer le nom
   1.239 +d'utilisateur} par défaut. Pour une utilisation normale, le plus simple
   1.240 +et robuste manière d'opérer est de créer un fichier \sfilename{.hgrc},
   1.241 +voir ci dessous pour les détails à ce sujet.
   1.242  
   1.243  \subsubsection{Creating a Mercurial configuration file}
   1.244  \label{sec:tour-basic:username}