Commits

Romain Pelisse committed 8de6ceb Merge

merge with Jean Marie Clément

  • Participants
  • Parent commits 1df99de, fb8c047

Comments (0)

Files changed (1)

 <title>Migrer vers Mercurial</title>
 
   <para id="x_6e1">Une manière courante de s'essayer à un nouveau
-  gestionnaire de révisions est d'expérimenter consiste à migrer un
+  gestionnaire de révisions est d'expérimenter en migrant un
   projet existant, plutôt que le faire avec un nouveau projet.
   </para>
 
   <para id="x_6e2">Dans cette annexe, nous discuterons comment importer
   l'historique d'un projet dans Mercurial, et à quoi faire attention
-  si vous êtes habitué à un autre outils de gestion de révisions.
+  si vous êtes habitué à un autre outil de gestion de révisions.
    </para>
 
   <sect1>
     <title>Importer l'historique depuis un autre système</title>
 
     <para id="x_6e3">Mercurial est livré avec une extension nommée
-      <literal>convert</literal>, qui permet d'importer son historique
-      depuis les gestionnaire de révisions les plus courants. Lors de 
+      <literal>convert</literal>, qui permet d'importer un historique
+      depuis les gestionnaire de révisions les plus courants. Au moment de 
       l'écriture de ce livre, il pouvait importer l'historique depuis:
       </para>
     <itemizedlist>
     </itemizedlist>
 
     <para id="x_6ec">(Pour savoir pourquoi Mercurial lui même est supporté
-    comme source, voir, see <xref linkend="svn.filemap"/>.)</para>
+    comme source, voir <xref linkend="svn.filemap"/>.)</para>
 
     <para id="x_6ed">Vous pouvez activer l'extension de la manière
-    habituelle, en éditant votre fichier <filename>~/.hgrc</filename> file.</para>
+    habituelle, en éditant votre fichier <filename>~/.hgrc</filename></para>
 
     <programlisting>[extensions]
 convert =</programlisting>
     <para id="x_6ee">Ceci rendra la commande <command>hg convert</command>
     disponible. La commande est facile à utiliser. Par exemple, la 
     commande suivante va importer l'historique Subversion du <emphasis
-    remap="it">framework</emphasis> de test Nose Unit dans Mercurial.
+    remap="it">framework</emphasis> de test <quote>Nose Unit</quote> dans Mercurial.
       </para>
 
     <screen><prompt>$</prompt> <userinput>hg convert http://python-nose.googlecode.com/svn/trunk</userinput></screen>
 
     <para id="x_6ef">L'extension <literal>convert</literal> opère de 
-    manière incrémentale. En d'autres mots, après que vous ayez exécuter
-    la commande <command>hg convert</command> une première fois, l'exécuter
-    de nouveau importera les nouvelles révisions, ajoutées depuis votre 
-    précédente exécution. La conversion incrémentale ne réussiera que si
+    manière incrémentale. En d'autres mots, après une première exécution de
+    la commande <command>hg convert</command>, les exécutions ultérieures
+    importeront les révisions ultérieures à l'exécution précédente.
+    La conversion incrémentale ne réussiera que si
     vous exécutez <command>hg convert</command> dans le même dépôt que vous
-    aviez utilisé à l'origine car l'extension <literal>convert</literal> 
-    sauvegarde un certains nombres de méta-données privées dans le fichier,
-    non versioné, <filename>.hg/shamap</filename>, au sein du dépôt cible.
+    aviez utilisé à l'origine, ceci parce que l'extension <literal>convert</literal> 
+    sauvegarde un certain nombre de méta-données privées dans le fichier
+    <filename>.hg/shamap</filename> (non versioné) au sein du dépôt cible.
     </para>
 
-    <para id="x_707">Quand vous voulez faire des modifications en utilisant
+    <para id="x_707">Lorsque vous voulez faire des modifications en utilisant
     Mercurial, le mieux est de faire un clone de l'ensemble de l'arborescence 
-    que vous souhaitez convertir, et laisser l'arborescence d'origine pour
-    des conversions futures. C'est la manière la plus sûr pour vous laisser
-    récupérer et fusionner les modifications futures depuis la gestionnaire de 
-    révisions source dans votre dépôt Mercurial.</para>
+    que vous souhaitez convertir, et de laisser l'arborescence d'origine pour
+    de futures conversions incrémentales. C'est la manière la plus sûre pour vous laisser
+    récupérer et fusionner les modifications futures depuis l'outil de gestion
+    de révisions dans votre nouveau dépôt Mercurial.</para>
 
     <sect2>
       <title>Convertir plusieurs branches</title>
 
-      <para id="x_708">La commande <command>hg convert</command> cité 
-      ci dessus converti seulement l'historique de la <literal>branche
-      principal (trunk)</literal> du dépôt Subversion. Si vous utilisons
+      <para id="x_708">La commande <command>hg convert</command> citée 
+      ci-dessus convertit seulement l'historique de la <literal>branche
+      principale (trunk)</literal> du dépôt Subversion. Si nous utilisons
       à la place l'URL <literal>http://python-nose.googlecode.com/svn</literal>,
-      Mercurial va automatiquement détecter les répertoires  
+      Mercurial va automatiquement détecter la  
       <literal>branche principale (trunk)</literal>, les <literal>étiquettes 
       (tags)</literal>, et les <literal>branches</literal>  que les dépôt
-      Subversion utilisent généralement, et il va les importer chacun dans
+      Subversion utilisent généralement, et les importera chacun dans
       une branche Mercurial distincte.</para>
 
       <para id="x_709">Par défaut, chaque branche Subversion importée 
-     dans Mercurial se voit attribué un nom de branche. Une fois la
-     conversion achevée, vous pouvez lister les noms des branches 
+     dans Mercurial se voit attribuer un nom de branche. Une fois la
+     conversion achevée, vous pouvez obtenir la liste des noms des branches 
      actives dans le dépôt Mercurial en utilisant la commande
      <command>hg branches -a</command>. Si vous préférez importer les 
      branches Subversion sans noms, ajoutez l'option <option>--config
      convert.hg.usebranches=false</option> à la commande 
      <command>hg convert</command>.</para>
 
-      <para id="x_70a">Une fois que vous avez converti votre arborescence,
-      si vous voulez suivre la pratique habituel avec Mercurial dans une
-      arborescence qui ne contient qu'une seule branche, vous pouvez cloner
-      une seule branche en utilisant 
+      <para id="x_70a">Une fois votre arborescence convertie, 
+      si vous souhaitez travailler selon la pratique habituelle sous Mercurial
+      avec une arborescence qui ne contient qu'une seule branche, vous pouvez cloner
+      cette seule branche en utilisant 
       <command>hg clone -r nomdemabranche</command>.</para>
     </sect2>
 
     <sect2>
       <title>Associer les noms d'utilisateurs</title>
 
-      <para id="x_6f0">Certains système de gestion de révisions
-      ne sauvegarde, avec les modifications transférées, que les noms 
-      d'utilisateurs raccourcis et ceci peuvent être difficile à 
-      intépréter. La norme avec Mercurial est de sauvegarder le 
-      nom du <emphasis remap="it">committer</emphasis> et son adresse
+      <para id="x_6f0">Certains outils de gestion de révisions
+      ne sauvegardent, avec les modifications, que les noms 
+      d'utilisateurs raccourcis. Ceux-ci peuvent être difficiles à 
+      interpréter. La norme avec Mercurial est de sauvegarder le 
+      nom du <emphasis remap="it">committeur</emphasis> et son adresse
       mail, ce qui est beaucoup plus utile pour discuter avec lui
       par la suite.</para>
 
       <para id="x_6f1">Si vous convertissez une arborescence depuis
-      un gestionnaire de révisions qui utilisent seulement les noms
-      raccourcies, vous pouvez associer ces noms à des équivalents 
+      un gestionnaire de révisions qui utilise seulement les noms
+      raccourcis, vous pouvez associer ces noms à des équivalents 
       plus détaillés en passant l'option <option>--authors</option>
       à la commande <command>hg convert</command>. Cette option
-      attend un fichier qui contient des entrées de la forme suivante:
+      attend un fichier qui contient des entrées sous la forme suivante:
       </para>
 
       <programlisting>arist = Aristotle &lt;aristotle@phil.example.gr&gt;
 soc = Socrates &lt;socrates@phil.example.gr&gt;</programlisting>
 
       <para id="x_6f2">Quand <literal>convert</literal> trouve une
-      modification associé au nom <literal>arist</literal> dans le
+      modification associée au nom <literal>arist</literal> dans le
       dépôt de source, il va utiliser le nom <literal>Aristotle
       &lt;aristotle@phil.example.gr&gt;</literal> dans les révisions
       Mercurial. Si aucune correspondance n'est trouvé, il utilise
     <sect2 id="svn.filemap">
       <title>Nettoyer l'arboresence</title>
 
-      <para id="x_6f3">Tout les projets n'ont pas un historique parfait.
-      Il peut y avoir des répertoire qui n'auraient jamais dû être ajoutés,
-      un fichier qui est trop volumineux, ou même une sous partie de la
-      hiérarchie qui devraient être réorganisée.</para>
+      <para id="x_6f3">Tous les projets n'ont pas un historique parfait.
+      Il peut y avoir des répertoires qui n'auraient jamais dû être ajoutés,
+      un fichier qui est trop volumineux, ou même une partie de la
+      hiérarchie qui devrait être réorganisée.</para>
 
       <para id="x_6f4">L'extension <literal>convert</literal> permet
       d'utiliser un <quote>fichier d'association</quote> qui peut 
-      réorganiser les fichiers et les répertoires dans un projet alors
-      qu'il importe son historique. Ceci est utile non seulement quand vous
+      réorganiser les fichiers et les répertoires dans un projet lors de
+      l'importation de son historique. Ceci est utile non seulement quand vous
       importez l'historique d'un autre gestionnaire de révisions, mais
-      aussi pour nettoyer ou refactorer l'arboresence d'un projet
+      aussi pour nettoyer ou réorganiser l'arborescence d'un projet
       Mercurial.</para>
 
       <para id="x_6f5">Pour indiquer le fichier d'association, on utilise
-      l'option <option>-filemap</option> en lui fournissant un nom de
+      l'option <option>--filemap</option> en lui fournissant un nom de
       fichier. Le fichier d'association contient des lignes de la forme
-      suivante:
+      suivante:</para>
 
       <programlisting># Ceci est un commentaire.
 # Les lignes vides sont ignorées.
 
 rename from/some/path to/some/other/place
 </programlisting>
-
-      <para id="x_6f6">La directive <literal>include</literal> inclus un
+      
+      <para id="x_6f6">La directive <literal>include</literal> inclut un
       fichier, ou l'ensemble des fichiers d'un répertoire, dans le dépôt
       de destination. La directive <literal>exclude</literal> omet les
       fichiers ou répertoires du dépôt. Ceci inclut aussi les autres
       fichiers et répertoires qui ne sont pas explicitement inclus.
       La directive <literal>exclude</literal> entraine l'omission
-      des fichiers ou répertoires, et autres fichiers qui ne sont
+      des fichiers ou répertoires, et autres fichiers qui ne sont pas
       explicitement inclus.</para>
 
       <para id="x_6f7">Pour déplacer un fichier ou un répertoire d'un
-      emplacement à un autre, il faut utiliser la directive
+      emplacement à un autre, utilisez la directive
       <literal>rename</literal>. Si vous avez besoin de déplacer un 
-      fichier ou un répertoire depuis un sous répertoire dans la raçine
+      fichier ou un répertoire depuis un sous répertoire dans la racine
       du dépôt, utilisez <literal>.</literal> comme second argument de 
       la directive <literal>rename</literal>.</para>
     </sect2>
 
     <sect2>
-      <title>Améliorer les performances la conversion Subversion</title>
+      <title>Améliorer les performances de la conversion Subversion</title>
 
       <para id="x_70b">Vous aurez souvent besoin de plusieurs essais
-      avant d'arriver à la parfaite combinaison de fichier d'association,
-      d'association de noms d'utilisateurs et d'autres paramètres. Hors,
+      avant d'arriver à la parfaite combinaison de fichier d'association de fichiers,
+      de fichier d'association de noms d'utilisateurs et des autres paramètres. Hors,
       convertir un dépôt Mercurial via un protocol comme <literal>ssh</literal>
-      or <literal>http</literal> peut être des milliers de fois plus long
+      ou <literal>http</literal> peut être des milliers de fois plus long
       que ce dont le système d'exploitation est en fait capable de faire,
       à cause des latence réseau. Ceci peut rendre la conception de cette
       combinaison parfaite très douloureuse.</para>
 	peut grandement améliorer la vitesse de conversion d'un dépôt
         Subversion. Il s'agit d'un programme de miroir de dépôt Subversion
         en lecture seule. L'idée est de créer un miroir local d'une
-        arboresence Subversion, puis de convertir ce miroir en dépôt
+        arborescence Subversion, puis de convertir ce miroir en dépôt
         Mercurial.</para>
       
       <para id="x_70d">Supposez que nous voulions convertir le dépôt 
       Subversion du populaire projet Memcached en une arboresence Mercurial.
-      Premièrement, nous créons un dépôt Subversion local.</para>
+      Tout d'abord, nous créons un dépôt Subversion local.</para>
 
       <screen><prompt>$</prompt> <userinput>svnadmin create memcached-mirror</userinput></screen>
 
-      <para id="x_70e">Puis, nous allons mettre en place le 'hook' Subversion
+      <para id="x_70e">Puis, nous allons mettre en place un <quote>hook</quote> Subversion
       dont <command>svnsync</command> a besoin.</para>
 
       <screen><prompt>$</prompt> <userinput>echo '#!/bin/sh' > memcached-mirror/hooks/pre-revprop-change</userinput>
 <prompt>$</prompt> <userinput>chmod +x memcached-mirror/hooks/pre-revprop-change</userinput></screen>
 
-      <para id="x_70f">Nous initialisons <command>svnsync</command> dans ce
+      <para id="x_70f">Nous initialisons ensuite <command>svnsync</command> dans ce
       dépôt.</para>
 
       <screen><prompt>$</prompt> <userinput>svnsync --init file://`pwd`/memcached-mirror \
   http://code.sixapart.com/svn/memcached</userinput></screen>
 
       <para id="x_710">La prochaine étape est de commencer le processus de
-      miroir de <command>svnsync</command>.</para>
+      mirroring de <command>svnsync</command>.</para>
 
       <screen><prompt>$</prompt> <userinput>svnsync sync file://`pwd`/memcached-mirror</userinput></screen>
 
       <para id="x_712">Nous pouvons utiliser ce processus de manière
       incrémentale, si le dépôt Subversion est toujours en activité.
       Il suffit d'exécuter de nouveau <command>svnsync</command> pour
-      récupérer les modifications dans notre miroir, puis <command>hg convert</command>
+      récupérer les récentes modifications dans notre miroir, puis <command>hg 
+      convert</command>
       les importe dans notre arboresence Mercurial.</para>
 
       <para id="x_713">Il y a deux avantages à utiliser un import à deux
-      étages comme avec <command>svnsync</command></command>. Le premier
-      est qu'il utilise plus efficassement la synchronisation à travers
-      le réseau de Subversion que la commande <command>hg convert</command>,
-      et donc il transfère moins de données à travers ce dernier. La deuxième
-      est que l'import depuis un dépôt subversion local est si rapide que
-      vous pouvez améliorer votre conversion de ce dernier, en le répétant
-      succesivement, sans souffrir de la qualité de la connection
-      réseau.</para>
+      étages comme avec <command>svnsync</command>. Le premier
+      est qu'il utilise du code de synchronisation réseau de Subversion 
+      plus efficace que la commande <command>hg convert</command>,
+      et donc transfère moins de données par le réseau. Le deuxième
+      est que l'import depuis un dépôt Subversion local est si rapide que
+      vous pouvez peaufiner et réitérer les paramètres de conversion de 
+      ce dernier sans souffrir de la qualité de la connection réseau.</para>
     </sect2>
   </sect1>
 
   <sect1>
-    <title>Migrating from Subversion</title>
+    <title>Migrer depuis Subversion</title>
 
-    <para id="x_6f8">Subversion est aujourd'hui le plus utilisé des 
-    système de gestion de révision Open Source. Bien qu'il y est des
+    <para id="x_6f8">Subversion est le système de gestion de versions
+    open source le plus populaire aujourd'hui. Bien qu'il y ait des
     différences entre Mercurial et Subversion, faire la transition de
     l'un à l'autre n'est pas très difficile. Les deux disposent en effet 
-    de jeux de commandes similaires et d'interfaces uniformes.</para>
+    de jeux de commandes similaires et d'interfaces similaires.</para>
 
     <sect2>
       <title>Différences philosophiques</title>
       Mercurial est bien évidement que Subversion est centralisé, alors 
       que Mercurial est distribué. Puisque que Mercurial enregistre tout
       l'historique d'un projet sur votre disque dur local, il n'a besoin
-      d'effectuer des accès au réseau que lorsque vous lui demandez
-      explicitement de discuter avec un autre dépôt, distant. Par contraste,
-      Subversion ne conserve que peu d'information localement, et le client
-      doit donc régulièrement discuter avec le serveur central pour la
+      d'effectuer des accès au réseau que lorsque vous voulez
+      explicitement communiquer avec un autre dépôt. Subversion, par contre,
+      ne conserve que peu d'information localement, et le client
+      doit donc communiquer avec le serveur central pour la
       plupart des opérations communes.</para>
 
-      <para id="x_6fa">Subversion s'en tire plus ou moins bien sans de notion
-      de branche réellement bien définie : quel part de l'espace de nommage
+      <para id="x_6fa">Subversion s'en tire plus ou moins bien sans notion
+      de branche réellement bien définie : quelle portion de l'espace de nommage
       du serveur est une branche est une simple question de convention, le
-      logiciel ne fournissant aucune sécurité à ce sujet. Mercurial considère
-      un dépôt comme une branche.</para>
+      logiciel n'imposant rien à ce sujet. Mercurial considère
+      un dépôt comme un élément de la gestion des branches.</para>
       
       <sect3>
 	<title>Portée des commandes</title>