# HG changeset patch # User Romain PELISSE # Date 1251834501 -7200 # Node ID 8de6cebc363ddbe1293e66771ddb6edc4ef974bd # Parent 1df99de46e391e4af875ed2e70b6b8dddf0603c5# Parent fb8c047cbc7671859f935ff57e4acbbce8d42db9 merge with Jean Marie Clément diff -r 1df99de46e39 -r 8de6cebc363d fr/appA-svn.xml --- a/fr/appA-svn.xml Tue Sep 01 17:00:12 2009 +0200 +++ b/fr/appA-svn.xml Tue Sep 01 21:48:21 2009 +0200 @@ -5,21 +5,21 @@ Migrer vers Mercurial 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. 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. Importer l'historique depuis un autre système Mercurial est livré avec une extension nommée - convert, qui permet d'importer son historique - depuis les gestionnaire de révisions les plus courants. Lors de + convert, 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: @@ -50,10 +50,10 @@ (Pour savoir pourquoi Mercurial lui même est supporté - comme source, voir, see .) + comme source, voir .) Vous pouvez activer l'extension de la manière - habituelle, en éditant votre fichier ~/.hgrc file. + habituelle, en éditant votre fichier ~/.hgrc [extensions] convert = @@ -61,82 +61,82 @@ Ceci rendra la commande hg convert disponible. La commande est facile à utiliser. Par exemple, la commande suivante va importer l'historique Subversion du framework de test Nose Unit dans Mercurial. + remap="it">framework de test Nose Unit dans Mercurial. $ hg convert http://python-nose.googlecode.com/svn/trunk L'extension convert opère de - manière incrémentale. En d'autres mots, après que vous ayez exécuter - la commande hg convert 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 hg convert, 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 hg convert dans le même dépôt que vous - aviez utilisé à l'origine car l'extension convert - sauvegarde un certains nombres de méta-données privées dans le fichier, - non versioné, .hg/shamap, au sein du dépôt cible. + aviez utilisé à l'origine, ceci parce que l'extension convert + sauvegarde un certain nombre de méta-données privées dans le fichier + .hg/shamap (non versioné) au sein du dépôt cible. - Quand vous voulez faire des modifications en utilisant + 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. + 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. Convertir plusieurs branches - La commande hg convert cité - ci dessus converti seulement l'historique de la branche - principal (trunk) du dépôt Subversion. Si vous utilisons + La commande hg convert citée + ci-dessus convertit seulement l'historique de la branche + principale (trunk) du dépôt Subversion. Si nous utilisons à la place l'URL http://python-nose.googlecode.com/svn, - Mercurial va automatiquement détecter les répertoires + Mercurial va automatiquement détecter la branche principale (trunk), les étiquettes (tags), et les branches 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. 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 hg branches -a. Si vous préférez importer les branches Subversion sans noms, ajoutez l'option à la commande hg convert. - 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 + 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 hg clone -r nomdemabranche. Associer les noms d'utilisateurs - 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 committer et son adresse + 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 committeur et son adresse mail, ce qui est beaucoup plus utile pour discuter avec lui par la suite. 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 à la commande hg convert. 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: arist = Aristotle <aristotle@phil.example.gr> soc = Socrates <socrates@phil.example.gr> Quand convert trouve une - modification associé au nom arist dans le + modification associée au nom arist dans le dépôt de source, il va utiliser le nom Aristotle <aristotle@phil.example.gr> dans les révisions Mercurial. Si aucune correspondance n'est trouvé, il utilise @@ -146,23 +146,23 @@ Nettoyer l'arboresence - 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. + 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. L'extension convert permet d'utiliser un fichier d'association 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. Pour indiquer le fichier d'association, on utilise - l'option en lui fournissant un nom de + l'option en lui fournissant un nom de fichier. Le fichier d'association contient des lignes de la forme - suivante: + suivante: # Ceci est un commentaire. # Les lignes vides sont ignorées. @@ -173,32 +173,32 @@ rename from/some/path to/some/other/place - - La directive include inclus un + + La directive include inclut un fichier, ou l'ensemble des fichiers d'un répertoire, dans le dépôt de destination. La directive exclude 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 exclude 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. 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 rename. 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 . comme second argument de la directive rename. - Améliorer les performances la conversion Subversion + Améliorer les performances de la conversion Subversion 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 ssh - or http peut être des milliers de fois plus long + ou http 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. @@ -208,29 +208,29 @@ 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. 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. + Tout d'abord, nous créons un dépôt Subversion local. $ svnadmin create memcached-mirror - Puis, nous allons mettre en place le 'hook' Subversion + Puis, nous allons mettre en place un hook Subversion dont svnsync a besoin. $ echo '#!/bin/sh' > memcached-mirror/hooks/pre-revprop-change $ chmod +x memcached-mirror/hooks/pre-revprop-change - Nous initialisons svnsync dans ce + Nous initialisons ensuite svnsync dans ce dépôt. $ svnsync --init file://`pwd`/memcached-mirror \ http://code.sixapart.com/svn/memcached La prochaine étape est de commencer le processus de - miroir de svnsync. + mirroring de svnsync. $ svnsync sync file://`pwd`/memcached-mirror @@ -242,29 +242,29 @@ 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 svnsync pour - récupérer les modifications dans notre miroir, puis hg convert + récupérer les récentes modifications dans notre miroir, puis hg + convert les importe dans notre arboresence Mercurial. Il y a deux avantages à utiliser un import à deux - étages comme avec svnsync. Le premier - est qu'il utilise plus efficassement la synchronisation à travers - le réseau de Subversion que la commande hg convert, - 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. + étages comme avec svnsync. Le premier + est qu'il utilise du code de synchronisation réseau de Subversion + plus efficace que la commande hg convert, + 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. - Migrating from Subversion - - Subversion est aujourd'hui le plus utilisé des - système de gestion de révision Open Source. Bien qu'il y est des + Migrer depuis Subversion + + 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. + de jeux de commandes similaires et d'interfaces similaires. Différences philosophiques @@ -273,17 +273,17 @@ 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. - 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 + 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. + logiciel n'imposant rien à ce sujet. Mercurial considère + un dépôt comme un élément de la gestion des branches. Portée des commandes