hgbook

changeset 954:2cd5d582c956

Work in progress + typos
author Romain PELISSE <belaran@gmail.com>
date Wed Feb 18 20:38:12 2009 +0100 (2009-02-18)
parents e77ede0fdef8
children 5abf0e11ce7e
files fr/tour-merge.tex
line diff
     1.1 --- a/fr/tour-merge.tex	Wed Feb 18 18:02:29 2009 +0100
     1.2 +++ b/fr/tour-merge.tex	Wed Feb 18 20:38:12 2009 +0100
     1.3 @@ -1,7 +1,7 @@
     1.4  \chapter{Un rapide tour de Mercurial: fusionner les travaux}
     1.5  \label{chap:tour-merge}
     1.6  
     1.7 -Nous avons maintenons étudié comment clôner un dépôt, effectuer
     1.8 +Nous avons maintenons étudié comment cloner un dépôt, effectuer
     1.9  des changements dedans, et récupérer ou transférer depuis un 
    1.10  autre dépôt. La prochaine étape est donc de \emph{fusionner} les
    1.11  modifications de différents dépôts.
    1.12 @@ -9,9 +9,9 @@
    1.13  \section{Fusionner différents travaux} %%%TODO: better translation
    1.14  				       %%% for 'Merging streams of work' ?
    1.15  La fusion\footnote{NdT: Je garde fusion mais le jargon professionnel 
    1.16 -employera généralement le terme \textit{merge}.} est un aspect 
    1.17 +emploiera généralement le terme \textit{merge}.} est un aspect 
    1.18  fondamental lorsqu'on travail avec un gestionnaire de source 
    1.19 -distribé.
    1.20 +distribué.
    1.21  \begin{itemize}
    1.22  \item Alice et Bob ont chacun une copie personnelle du dépôt d'un
    1.23    projet sur lequel ils collaborent. Alice corrige un \textit{bug} 
    1.24 @@ -25,8 +25,8 @@
    1.25  \end{itemize}
    1.26  
    1.27  Parce que la fusion est une opération si commune que je dois réaliser,
    1.28 -Mercurial la rend facile. Etudions ensemble le déroulement des opérations.
    1.29 -Nous commencerons par faire un clone d'encore un autre dépôt (vous voyez
    1.30 +Mercurial la rend facile. Étudions ensemble le déroulement des opérations.
    1.31 +Nous commencerons par faire un clone de encore un autre dépôt (vous voyez
    1.32  comment on fait ça tout le temps ?) puis nous ferons quelques modifications
    1.33  dessus.
    1.34  \interaction{tour.merge.clone}
    1.35 @@ -49,7 +49,7 @@
    1.36  
    1.37  \interaction{tour.merge.pull}
    1.38  
    1.39 -Néanmoins, la commande \hgcmd{pull} nous indique quelquechose au 
    1.40 +Néanmoins, la commande \hgcmd{pull} nous indique quelque chose au 
    1.41  sujet des ``heads''.
    1.42  
    1.43  \subsection{\textit{Head changesets}} %%%TODO: Hard (too?) to translate
    1.44 @@ -103,15 +103,16 @@
    1.45  \end{figure}
    1.46  
    1.47  Ceci met à jour de l'espace de travail de manière à ce qu'il contienne
    1.48 -les modifications des \emph{deux} \textit{heads}, ce qui apparait dans
    1.49 +les modifications des \emph{deux} \textit{heads}, ce qui apparaît dans
    1.50  les sorties de la commande \hgcmd{parents} et le contenu de 
    1.51  \filename{hello.c}. 
    1.52  \interaction{tour.merge.parents}
    1.53  
    1.54 -\subsection{Committing the results of the merge}
    1.55 -
    1.56 -Whenever we've done a merge, \hgcmd{parents} will display two parents
    1.57 -until we \hgcmd{commit} the results of the merge.
    1.58 +\subsection{Effectuer le \textit{commit} du résultat de la fusion}
    1.59 +
    1.60 +Dès l'instant où vous avez effectuer une fusion, \hgcmd{parents} vous
    1.61 +affichera deux parents, avant que vous n'exécuter la commande 
    1.62 +\hgcmd{commit} sur le résultat de la fusion.
    1.63  \interaction{tour.merge.commit}
    1.64  Nous avons maintenant un nouveau \textit{tip}, remarquer qu'il contient
    1.65  \emph{à la fois} nos anciennes \textit{heads} et leurs parents. Ce sont
    1.66 @@ -128,10 +129,10 @@
    1.67  \section{Fusionner les modifications en conflit}
    1.68  
    1.69  La plupart des fusions sont assez simple à réaliser, mais parfois 
    1.70 -vous vous trouverez à fusioner des fichiers où la modification touche
    1.71 +vous vous trouverez à fusionner des fichiers où la modification touche
    1.72  la même portion de code, au sein d'un même fichier. À moins que ces
    1.73  modification ne soient identiques, ceci aboutira à un \emph{conflit},
    1.74 -et vous devrez décider comment réconcillier les différentes modifications
    1.75 +et vous devrez décider comment réconcilier les différentes modifications
    1.76  dans un tout cohérent. 
    1.77  
    1.78  \begin{figure}[ht]
    1.79 @@ -148,7 +149,7 @@
    1.80  du conflit est de décider à quoi le fichier devrait ressembler.
    1.81  
    1.82  Mercurial n'a pas de mécanisme interne pour gérer les conflits. 
    1.83 -À la place, il exéctue un programme externe appelé \command{hgmerge}.
    1.84 +À la place, il exécute un programme externe appelé \command{hgmerge}.
    1.85  Il s'agit d'un script shell qui est embarqué par Mercurial, vous
    1.86  pouvez le modifier si vous le voulez. Ce qu'il fait par défaut est
    1.87  d'essayer de trouver un des différents outils de fusion qui seront
    1.88 @@ -159,7 +160,7 @@
    1.89  
    1.90  Il est aussi possible de demander à Mercurial d'exécuter un autre
    1.91  programme ou un autre script au lieu de la commande \command{hgmerge},
    1.92 -en définissant la variable d'environement \envar{HGMERGE} avec le nom
    1.93 +en définissant la variable d'environnement \envar{HGMERGE} avec le nom
    1.94  du programme de votre choix.
    1.95  
    1.96  \subsection{Utiliser un outil graphique de fusion}
    1.97 @@ -186,7 +187,7 @@
    1.98  qui indiquent des conflits non résolus, avec un fusion manuel et pertinente
    1.99  de ``notre'' version et de la ``leur''. 
   1.100  
   1.101 -Tout les quatres panneaux sont \emph{accrochés ensemble}, si nous déroulons
   1.102 +Tout les quatre panneaux sont \emph{accrochés ensemble}, si nous déroulons
   1.103  les ascenseurs verticalement ou horizontalement dans chacun d'entre eux, les
   1.104  autres sont mise à jours avec la section correspondantes dans leurs fichiers.
   1.105  
   1.106 @@ -199,56 +200,65 @@
   1.107  \end{figure}
   1.108  
   1.109  Pour chaque portion de fichier posant problème, nous pouvons choisir 
   1.110 -de résoudre le le conlfit en utilisant en utilisant une combinaison 
   1.111 +de résoudre le le conflit en utilisant en utilisant une combinaison 
   1.112  de texte depuis la version de base, la notre, ou la leur. Nous pouvons 
   1.113  aussi éditer manuellement les fichiers à tous moments, si c'est
   1.114  nécessaire.
   1.115  
   1.116  Il y a \emph{beaucoup} d'outils de fusion disponibles, bien trop pour
   1.117 -en parler de tous ici. Leurs disponibilités varient selon les plateformes
   1.118 -ainsi que leurs avantages et incovénients. La plupart sont optimisé pour
   1.119 +en parler de tous ici. Leurs disponibilités varient selon les plate formes
   1.120 +ainsi que leurs avantages et inconvénients. La plupart sont optimisé pour
   1.121  la fusion de fichier contenant un texte plat, certains sont spécialisé
   1.122 -dans un format de fichier précis (générallement XML).
   1.123 -
   1.124 -\subsection{A worked example}
   1.125 -
   1.126 -In this example, we will reproduce the file modification history of
   1.127 -figure~\ref{fig:tour-merge:conflict} above.  Let's begin by creating a
   1.128 -repository with a base version of our document.
   1.129 +dans un format de fichier précis (généralement XML).
   1.130 +
   1.131 +\subsection{A worked example} %TODO: Find a translation for this !
   1.132 +
   1.133 +Dans cet exemple, nous allons reproduire la modification de l'historique
   1.134 +du fichier de la figure~\ref{fig:tour-merge:conflict} ci dessus. Commençons
   1.135 +par créer un dépôt avec une version de base de notre document.
   1.136 +
   1.137  \interaction{tour-merge-conflict.wife}
   1.138 -We'll clone the repository and make a change to the file.
   1.139 +Créons un clone de ce dépôt et faisons une modification dans le fichier.
   1.140  \interaction{tour-merge-conflict.cousin}
   1.141 -And another clone, to simulate someone else making a change to the
   1.142 -file.  (This hints at the idea that it's not all that unusual to merge
   1.143 -with yourself when you isolate tasks in separate repositories, and
   1.144 -indeed to find and resolve conflicts while doing so.)
   1.145 +Et un autre clone, pour simuler que quelqu'un d'autre effectuer une
   1.146 +modification sur le fichier. (Ceci pour suggérer qu'il n'est pas rare
   1.147 +de devoir effectuer des \textit{merge} avec vos propres travaux quand 
   1.148 +vous isoler les tâches dans des dépôts distincts. En effet, vous 
   1.149 +aurez alors à trouver et résoudre certains conflits).
   1.150  \interaction{tour-merge-conflict.son}
   1.151 -Having created two different versions of the file, we'll set up an
   1.152 -environment suitable for running our merge.
   1.153 +Maintenant que ces deux versions différentes du même fichier sont 
   1.154 +créées, nous allons configurer l'environnement approprié pour exécuter 
   1.155 +notre \textit{merge}.
   1.156  \interaction{tour-merge-conflict.pull}
   1.157  
   1.158 -In this example, I won't use Mercurial's normal \command{hgmerge}
   1.159 -program to do the merge, because it would drop my nice automated
   1.160 -example-running tool into a graphical user interface.  Instead, I'll
   1.161 -set \envar{HGMERGE} to tell Mercurial to use the non-interactive
   1.162 -\command{merge} command.  This is bundled with many Unix-like systems.
   1.163 -If you're following this example on your computer, don't bother
   1.164 -setting \envar{HGMERGE}.
   1.165 +Dans cette exemple, je n'utiliserais pas la commande Mercurial
   1.166 +habituelle \command{hgmerge} pour effectuer le \textit{merge},
   1.167 +car il me faudrait abandonner ce joli petit exemple automatisé
   1.168 +pour utiliser un outil graphique. À la place, je vais définir
   1.169 +la variable d'environnement \envar{HGMERGE} pour indiquer à 
   1.170 +Mercurial d'utiliser la commande non-interactive \command{merge}.
   1.171 +Cette dernière est embarqué par de nombreux systèmes ``à la Unix''.
   1.172 +Si vous exécuter cet exemple depuis votre ordinateur, ne vous
   1.173 +occupez pas de définir \envar{HGMERGE}.
   1.174  \interaction{tour-merge-conflict.merge}
   1.175 -Because \command{merge} can't resolve the conflicting changes, it
   1.176 -leaves \emph{merge markers} inside the file that has conflicts,
   1.177 -indicating which lines have conflicts, and whether they came from our
   1.178 -version of the file or theirs.
   1.179 -
   1.180 -Mercurial can tell from the way \command{merge} exits that it wasn't
   1.181 -able to merge successfully, so it tells us what commands we'll need to
   1.182 -run if we want to redo the merging operation.  This could be useful
   1.183 -if, for example, we were running a graphical merge tool and quit
   1.184 -because we were confused or realised we had made a mistake.
   1.185 -
   1.186 -If automatic or manual merges fail, there's nothing to prevent us from
   1.187 -``fixing up'' the affected files ourselves, and committing the results
   1.188 -of our merge:
   1.189 +Parce que \command{merge} ne peut pas résoudre les modifications
   1.190 +conflictuelles, il laisse des \emph{marqueurs de différences}
   1.191 +\footnote{NdT: Oui, je traduis \textit{merge markers} par un sens
   1.192 +inverse en Français, mais je pense vraiment que c'est plus clair 
   1.193 +comme ça...} à l'intérieur du fichier qui a des conflits, indiquant
   1.194 +clairement quelles lignes sont en conflits, et si elles viennent de
   1.195 +notre fichier ou du fichier externe.
   1.196 +
   1.197 +Mercurial peut distinguer, à la manière dont la commande \command{merge}
   1.198 +se termine, qu'elle n'a pas été capable d'effectuer le \textit{merge},
   1.199 +alors il nous indique qu'il faut devons effectuer de nouveau cette
   1.200 +opération. Ceci peut être très utile si, par exemple, nous exécutons un
   1.201 +outil graphique de fusion et que nous le quittons sans se rendre compte
   1.202 +qu'il reste des conflits ou simplement par erreur.
   1.203 +
   1.204 +Si le \textit{merge} automatique ou manuel échoue, il n'y a rien pour
   1.205 +nous empêcher de ``corriger le tir'' en modifiant nous même les fichiers,
   1.206 +et enfin effectuer le \textit{commit} du fichier:
   1.207  \interaction{tour-merge-conflict.commit}
   1.208  
   1.209  \section{Simplifying the pull-merge-commit sequence}