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}