# HG changeset patch # User Romain PELISSE # Date 1253014982 -7200 # Node ID f4f740bb58beb3a75fcb1a709d29b80d1ba62f90 # Parent 55d1bf9b47a4a0e91db417a3acb949e6d5ed3828# Parent c859c8d328380881c485e6fd7c3355178a734aca merge with William and Frédéric diff -r 55d1bf9b47a4 -r f4f740bb58be fr/ch00-preface.xml --- a/fr/ch00-preface.xml Mon Sep 14 01:31:50 2009 +0200 +++ b/fr/ch00-preface.xml Tue Sep 15 13:43:02 2009 +0200 @@ -7,16 +7,16 @@ Un conte technique - Il y a quelques années, quand j'ai voulu expliqué - pourquoi je pensais que le gestion de révision distribuée est importante, + Il y a quelques années, quand j'ai voulu expliquer + pourquoi je pensais que la gestion de révisions distribuée était importante, le domaine était encore si nouveau qu'il n'y avait presque aucune littérature publiée pour servir de référence aux personnes intéressées. Bien qu'à cette époque je passais beaucoup de temps à travailler sur les entrailles de Mercurial, je me suis mis à la - rédaction de ce livre parce qu'il me semblait la manière la plus efficace + rédaction de ce livre parce que ça me semblait être la manière la plus efficace d'aider notre logiciel à atteindre un vaste auditoire, toujours avec - l'idée que la gestion de révision devrait être distribuée par nature. J'ai + l'idée que la gestion de révisions devrait être distribuée par nature. J'ai publié ce libre en ligne sous une licence libre pour la même raison : pour diffuser la parole auprès du monde. @@ -24,7 +24,7 @@ qui ressemble de près au fait de conter une histoire : Pourquoi ceci est ? Pourquoi ceci est important ? Comment peut il m'aider ? Comment m'en servir ? Dans ce livre, j'essaye de répondre à toutes ces questions pour - la gestion de révision distribuée en général, et pour Mercurial en + la gestion de révisions distribuée en général, et pour Mercurial en particulier. @@ -61,18 +61,18 @@ Fitzhardinge, Rachel Chalmers. J'ai conçu ce livre de manière ouverte, en publiant - des brouillons des chapitres du livre sur des site web, au fur et à + des brouillons de chapitres du livre sur des site web, au fur et à mesure que je les réalisais. Leurs lecteurs m'ont fait des retours utilisant l'application web que j'avais développée. A la fin de sa conception, plus de 100 personnes m'avaient fait des commentaires, - un chiffre incroyable quand l'on considère que ce système de + un chiffre incroyable quand on considère que ce système de commentaire n'a tourné que dans les deux derniers mois de la rédaction du livre. J'aimerais particulièrement remercier les personnes suivantes, dont les commentaires représentent plus - d'un tiers de l'ensemble de ces derniers. Je voudrais les - remercier pour leur attention et effort à me faire des retours + d'un tiers de l'ensemble de ces derniers. Je voudrai les + remercier pour leurs attentions et efforts à me faire des retours très détaillés. Martin Geisler, Damien Cassou, Alexey Bakhirkin, Till Plewe, @@ -142,7 +142,7 @@ Taille constante avec gras - Afficher les commandes ou autres textes qui + Affiche les commandes ou autres textes qui devraient être saisis par l'utilisateur. diff -r 55d1bf9b47a4 -r f4f740bb58be fr/ch01-intro.xml --- a/fr/ch01-intro.xml Mon Sep 14 01:31:50 2009 +0200 +++ b/fr/ch01-intro.xml Tue Sep 15 13:43:02 2009 +0200 @@ -5,17 +5,18 @@ Comment en est on arrivé là ? -À propos de la gestion source - - La gestion de sources est un processus permettant de gérer différentes +À propos de la gestion de révisions. Pourquoi Mercurial ? + + La gestion de révisions est un processus permettant de gérer différentes versions de la même information. Dans sa forme la plus simple, c'est ce que tout le monde fait manuellement : quand vous modifiez un fichier, vous le sauvegardez sous un nouveau nom contenant un numéro, à chaque fois plus grand que celui de la version précédente. - Ce genre de gestion de version manuelle est cependant facilement sujette + Ce genre de gestion de révisions manuelle, ne serait-ce que + d'un seul fichier, est cependant facilement sujette aux erreurs, ainsi, depuis longtemps, des logiciels existent pour -résoudre cette problématique. Les premiers outils de gestion de sources +résoudre cette problématique. Les premiers outils de gestion de révisions étaient destinés à aider un seul utilisateur, à automatiser la gestion des versions d'un seul fichier. Dans les dernières décades, cette cible s'est largement agrandie, ils gèrent désormais de multiples fichiers, et @@ -24,23 +25,23 @@ personnes travaillant ensemble sur des projets regroupant plusieurs centaines de milliers de fichiers. - L'arrivée de la gestion de révision distribuée est + L'arrivée de la gestion de révisions distribuée est relativement récente, et, pour le moment, ce nouveau domaine a grandi grâce à la volonté des gens d'explorer ces territoires encore inconnus. - J'écris un livre sur la gestion de révision distribuée + J'écris un livre sur la gestion de révisions distribuée parce que je pense qu'il s'agit d'un sujet important qui mérite un guide - du terrain. J'ai choisi d'écrire un livre sur Mercurial car il est + de terrain. J'ai choisi d'écrire un livre sur Mercurial car il est l'outil le plus facile pour découvrir ce nouveau domaine, tout en étant un outil efficace qui répond aux demandes d'environnements réels et - difficiles, là où d'autres outils de gestions de versions s'effondrent. + difficiles, là où d'autres outils de gestion de révisions s'effondrent. - Pourquoi utiliser un gestionnaire de source ? + Pourquoi utiliser un gestionnaire de révisions ? Il y a de nombreuses raisons pour que vous ou votre équipe souhaitiez -utiliser un outil automatisant la gestion de version pour votre projet. +utiliser un outil automatisant la gestion de révisions pour votre projet. L'outil se chargera de suivre l'évolution de votre projet, sans @@ -50,14 +51,14 @@ ce qu'il a modifié. Quand vous travaillez avec d'autres personnes, les logiciels de -gestion de source facilitent le travail collaboratif. Par exemple, quand +gestion de révisions facilitent le travail collaboratif. Par exemple, quand plusieurs personnes font, plus ou moins simultanément, des modifications incompatibles, le logiciel vous aidera à identifier et à résoudre les conflits. L'outil vous aidera à réparer vos erreurs. Si vous effectuez un changement qui se révèle être une erreur, vous pourrez revenir à une version antérieure d'un fichier ou même d'un ensemble de fichiers. En fait, un outil de -gestion de source vraiment efficace vous permettra d'identifier à quel +gestion de révisions vraiment efficace vous permettra d'identifier à quel moment le problème est apparu (voir la section pour plus de détails). @@ -65,27 +66,27 @@ de votre projet et de gérer l'écart entre chacune. La plupart de ces raisons ont autant d'importances &emdash;du - moins en théorie&emdash; que vous travailliez sur un projet pour vous, ou + moins en théorie&emdash; que vous travailliez seul sur un projet, ou avec une centaine d'autres personnes. Une question fondamentale à propos des outils de gestion de - source, qu'il s'agisse du projet d'une personne ou d'une grande équipe, est - quels sont ses avantages par rapport à ses - coûts. Un outil qui est difficile à utiliser ou à + révisions, qu'il s'agisse du projet d'une personne ou d'une grande équipe, est + quels sont ses gains par rapport à ses + coût. Un outil qui est difficile à utiliser ou à comprendre exigera un lourd effort d'adaptation. -)Un projet de cinq milles personnes s'effondrera très +Un projet de cinq milles personnes s'effondrera très certainement de lui même sans aucun processus et outil de gestion de - source. Dans ce cas, le coût d'utilisation d'un logiciel de gestion de - source est dérisoire puisque sans, l'échec est presque + révisions. Dans ce cas, le coût d'utilisation d'un logiciel de gestion de + révisions est dérisoire puisque sans, l'échec est presque garanti. D'un autre coté, un rapide hack d'une personne peut sembler un contexte bien pauvre pour utiliser un outil de gestion de - source, car, bien évidement le coût d'utilisation dépasse le coût total du + révisions, car, bien évidement le coût d'utilisation dépasse le coût total du projet. N'est ce pas ? @@ -93,7 +94,7 @@ échelles de travail. Vous pouvez apprendre les bases en quelques minutes seulement, et, grâce à sa performance, vous pouvez l'utiliser avec facilité sur le plus petit des projets. Cette simplicité - signifie que vous n'avez pas de concept obscurs ou de séquence de + signifie que vous n'avez pas de concept obscur ou de séquence de commandes défiant l'imagination, sans aucune corrélation avec ce que vous êtes entrain de faire. En même temps, ces mêmes performances et sa nature @@ -101,7 +102,7 @@ difficulté, son utilisation à de très grands projets. - Aucun outil de gestion de source ne peut sauver un + Aucun outil de gestion de révisions ne peut sauver un projet mal mené, mais un bon outil peut rendre beaucoup plus fluide votre travail. @@ -113,7 +114,7 @@ La gestion de source @@ -148,13 +149,13 @@ -A propos des exemples dans ce livre - - Ce livre prend une approche non usuel pour les exemples +À propos des exemples dans ce livre + + Ce livre prend une approche non usuelle pour les exemples de code. Tous les exemples sont en live &emdash; Chacun est actuellement le résultat d'un script shell qui exécute les commandes Mercurial que vous voyez. A chaque fois qu'une image du livre - est construite à partir des sources, tous les scripts d'exemple sont + est construite à partir des sources, tous les scripts d'exemples sont lancés automatiquement, et leurs résultats effectifs sont comparés aux résultats attendus. @@ -185,7 +186,7 @@ Donc, lorsque vous lisez ces exemples, ne prêtez pas trop d'importance aux dates et heures que vous voyez dans la sortie des commandes. Cependant, soyez confiants que le - comportement que vous voyez est consistent et reproductible + comportement que vous voyez est constant et reproductible @@ -193,7 +194,7 @@ - Tendances de la gestion de source + Tendances de la gestion de révisions Il y a eu une tendance évidente dans le développement et l'utilisation d'outils de gestion de source depuis les quatre dernières @@ -213,7 +214,7 @@ adoptant une architecture réseau et centralisée, permettant de gérer plusieurs projets entiers en même temps. Alors que les projets grandirent en taille, ils rencontrèrent de nouveaux problèmes. Avec les - clients discutant régulièrement avec le serveurs, la montée en charge + clients discutant régulièrement avec le serveur, la montée en charge devint un réel problème sur les gros projets. Une connexion réseau peu fiable pouvait complètement empêcher les utilisateurs distants de dialoguer avec le serveur. Alors que les projets - La génération actuelle des outils de gestion de source + La génération actuelle des outils de gestion de révisions est peer-to-peer par nature. Tous ces systèmes ont - abandonné la dépendance à un serveur central, et ont permis à leur - utilisateur de distribuer les données de leur gestion de source à qui + abandonné la dépendance à un serveur central, et ont permis à leurs + utilisateurs de distribuer les données de leur gestion de révisions à qui en a besoin. La collaboration à travers Internet a transformé la contrainte technologique en une simple question de choix et de consensus. Les outils modernes peuvent maintenant fonctionner en mode @@ -238,12 +239,12 @@ - Quelques avantages des gestionnaires de source distribués + Quelques avantages des gestionnaires de révisions distribués - Même si les gestionnaire de source distribués sont depuis + Même si les gestionnaire de révisions distribués sont depuis plusieurs années assez robustes et aussi utilisables que leurs prédécesseurs, les utilisateurs d'autres outils n'y ont pas encore été - sensibilisés. Les gestionnaires de source distribués se distinguent + sensibilisés. Les gestionnaires de révisions distribués se distinguent particulièrement de leurs équivalents centralisés de nombreuses manières. @@ -256,7 +257,7 @@ stocke toute ses métadonnées localement. À tâche égale, effectuer un échange avec le réseau ajoute un délai aux outils centralisés. Ne sous-estimez pas la valeur d'un outil rapide : vous allez passer - beaucoup de temps à interagir avec un logiciel de gestion de source. + beaucoup de temps à interagir avec un logiciel de gestion de révisions. Les outils distribués sont complètement indépendants des @@ -264,7 +265,7 @@ à beaucoup d'endroits. Si votre serveur central prend feu, vous avez intérêt à ce que les médias de sauvegardes soient fiables, et que votre dernier backup soit récent et fonctionne sans problème. - Avec un outil distribué, vous avez autant de backup que + Avec un outil distribué, vous avez autant de backups que de contributeurs. @@ -275,7 +276,7 @@ pendant que vous travaillez, vous pouvez ne même pas vous en rendre compte. La seule chose que vous ne serez pas capable de faire sera de communiquer avec des dépôts distants, opération somme toute assez rare - en comparaison aux opérations locales. Si vous avez une équipe de + en comparaison des opérations locales. Si vous avez une équipe de collaborateurs très dispersée ceci peut être significatif. @@ -285,7 +286,7 @@ Si vous prenez goût à un projet Open Source et que vous décidez de commencer à toucher à son code, et que le projet utilise un gestionnaire de - source distribué, vous êtes immédiatement un "pair" avec les + révisions distribué, vous êtes immédiatement un "pair" avec les personnes formant le cœur du projet. S'ils publient leurs dépôts, vous pouvez immédiatement copier leurs historiques de projet, faire des modifications, enregistrer votre travail en @@ -303,7 +304,7 @@ Le non-problème du "fork" Il a été souvent suggéré que les gestionnaires de - source distribués posent un risque pour les projets Open Source car ils facilitent grandement la création de fork. + changeset. C'est un champ libre de forme, mais la plupart du temps il contient le nom et l'email de la personne. date : La date et l'heure à - laquelle le \textit{changeset} a été créé, ainsi que le fuseau horaire dans + laquelle le changeset a été créé, ainsi que le fuseau horaire dans lequelle il a été créé. (La date et l'heure sont locales à ce - \textit{fuseau}, elles indiquent donc quelle date et heure il était - pour la personne qui a créé ce changeset. + fuseau, elles indiquent donc quelle date et heure il était + pour la personne qui a créé ce changeset. résumé: La première ligne du - message que le créateur a associé à son changeset pour le décrire. + message que le créateur a associé à son changeset pour le décrire. - Certains changesets, comme le premier de la + Certains changesets, comme le premier de la liste ci-dessus ont un champ tag. Le tag est une autre façon d'identifier un changeset en lui donnant un nom simple à retenir. (Le tag nommé tip est spécial : il fait toujours @@ -234,14 +234,14 @@ La figure fournit une représentation graphique de l'historique du dépôt hello - , pour rendre plus facile de voir dans quelle direction + , pour voir plus facilement dans quelle direction l'historique se déroule. Nous reviendrons régulièrement sur cette représentation dans ce chapitre et ceux qui suivent.
- Graphical history of the <filename - class="directory">hello</filename> repository + Historique graphique du dépôt <filename + class="directory">hello</filename> XXX add text @@ -255,18 +255,18 @@ Comme l'anglais est réputé pour être un langage maladroit, et que l'informatique est la source de bien des erreurs de terminologie (pourquoi utiliser un seul terme quand quatre feront l'affaire ?), la - gestion de version a une variété de mots et de phrases qui veulent dire + gestion de révisions a une variété de mots et de phrases qui veulent dire la même chose. Si vous discutez d'historique de Mercurial avec d'autres personnes, vous constaterez que souvent, le mot changeset est contracté simplement en change ou (à l'écrit) - cset, et même parfois un changeset + cset, et même parfois révision, abrégé en rev. Bien que le mot que vous utilisez pour désigner le concept de changeset importe peu, l'identifiant que vous utilisez pour désigner un changeset spécifique - a une grande importance. Rappelez vous que le champ changeset affiché par la - commande hg log identifie un changeset à + a une grande importance. Rappelez vous que le champ changeset affiché par la + commande hg log identifie un changeset à la fois avec un numéro de révision et une séquence hexadécimale. @@ -274,24 +274,24 @@ valable dans ce dépôt, La séquence hexadécimale est un identifiant permanent, et invariant qui - pourra toujours être associé au changeset exact de chaque + pourra toujours être associé au changeset exact de chaque copie de votre dépôt. La distinction est importante. Si vous envoyez un email à quelqu'un en parlant de la révision 33, il est très - probable que sa révision 33 ne sera pas la même + probable que sa révision 33 ne sera pas la même que la votre. La raison de ceci est que le numéro de révision dépend de l'ordre dans lequel les modifications sont arrivées dans le dépôt, et il n'y a aucune garantie que les mêmes changements soient arrivés dans le même ordre dans différents dépôts. Trois modifications - a,b,c peuvent aisément apparaitre dans un dépôt - comme 0,1,2, et dans un autre comme 0,2,1 + a, b, c peuvent aisément apparaitre dans un dépôt + comme 0, 1, 2, et dans un autre comme 0, 2, 1 . Mercurial utilise les numéros de révision uniquement comme des raccourcis - pratiques. Si vous devez discuter d'un \textit{changeset} avec quelqu'un, - ou identifer un \textit{changeset} pour une quelconque raison (par exemple, - un rapport de \textit{bug}), utilisez la séquence hexadécimale. + pratiques. Si vous devez discuter d'un changeset avec quelqu'un, + ou identifer un changeset pour une quelconque raison (par exemple, + un rapport de bug), utilisez la séquence hexadécimale. @@ -306,7 +306,7 @@ &interaction.tour.log-r; Si vous voulez voir l'historique de plusieurs révisions - sans avoir à les énumérer, vous pouvez utiliser la intervalle + sans avoir à les énumérer, vous pouvez utiliser un intervalle de numérotation qui vous permet d'exprimer l'idée je veux toutes les révisions entre $a$ et $b$, inclus @@ -314,8 +314,8 @@ Mercurial respecte aussi l'ordre dans lequel vous spécifiez les révisions, ainsi hg log -r 2:4 - affichera 2,3,4 alors que hg - log -r 4:2 affichera 4,3,2. + affichera 2, 3, 4 alors que hg + log -r 4:2 affichera 4, 3, 2. @@ -325,15 +325,15 @@ est suffisant si vous savez déjà ce que vous cherchez. En revanche, vous aurez probablement besoin de voir une description complète du changement, ou une liste des fichiers modifiés si vous - cherchez à déterminer qu'un changeset est bien celui que vous - recherchez. L'option \hgopt{-v} de la commande hg + cherchez à déterminer qu'un changeset est bien celui que vous + recherchez. L'option de la commande hg log (ou ) vous donne ces informations supplémentaires. &interaction.tour.log-v; Si vous voulez voir à la fois la description - et le contenu d'une modification, ajouter l'option (ou ). Ceci affiche le contenu d'une modification comme un diff unifié @@ -370,7 +370,7 @@ La plupart des options disposent de noms abrégés. Aussi, au lieu d'utiliser , vous pouvez utiliser . - (Les options qui n'ont pas de noms abrégés sont généralement + (Les options qui n'ont pas de nom abrégé sont généralement rarement utilisées). Les noms complets commencent par deux @@ -380,7 +380,7 @@ Les noms des options sont cohérents entre les commandes. Par exemple, chaque commande qui accepte - un changeset ID ou un numéro de révision accepte aussi et comme arguments. @@ -397,14 +397,14 @@ ). - Option naming consistency + Cohérence dans le nom des options Presque toujours, les commandes de Mercurial utilisent - des noms d'options cohérentes pour référer à des concepts identiques. - Par exemple, si une commande concerne les changesets, vous les + des noms d'options cohérentes pour se référer à des concepts identiques. + Par exemple, si une commande concerne les changesets, vous les identifierez toujours avec l'option . Cette utilisation cohérente des noms d'options permet de mémoriser plus - facilement quelles options accepte une commande. + facilement quelles options acceptent une commande. @@ -416,8 +416,8 @@ commandes pour consulter l'historique de Mercurial, regardons comment faire des modifications et les examiner. - La première chose que nous allons faire c'est isoler notre - expérience dans un dépôt à part. Nous allons utiliser la commande La première chose que nous allons faire est d'isoler notre + exercice dans un dépôt à part. Nous allons utiliser la commande hg clone, mais nous n'avons pas besoin de faire une copie de dépôt distant. Comme nous avons déjà une copie locale, nous pouvons juste faire un clone de celle-ci à la place. C'est beaucoup plus @@ -428,7 +428,7 @@ ce cas, Mercurial utilisera des liens physiques pour effectuer des partages copie-lors-des-écritures de ses métadonnées internes. Si cette explication ne signifie rien pour vous, ne vous inquietez pas : tout ceci se passe de - manière transparente et automatiquement. Vous n'avez pas du tout besoin de + manière transparente et automatique. Vous n'avez pas du tout besoin de comprendre ceci.. &interaction.tour.reclone; @@ -439,7 +439,7 @@ copies locales temporaires pour créer des bacs à sable pour chaque tâche sur laquelle vous souhaitez travailler. Ceci vous permet de travailler sur plusieurs choses en parallèle, - chacune isolée les unes des autres en attendant que ces tâches + chacunes isolées les unes des autres en attendant que ces tâches soient finies et que vous soyez prêt à les réintégrer. Parce que les copies locales sont peu coûteuses, il est très rapide de créer ou détruire des dépôts dès que vous n'en avez plus @@ -475,8 +475,8 @@ hello.c. Nous n'avons pas besoin d'informer Mercurial que nous allons modifier un fichier avant de commencer à le faire, ou que nous avons modifié un - fichier après avoir commencé à le faire, il est capable de découvrir ça - tout seul. + fichier après avoir commencé à le faire, il est capable de le découvrir + tout seul. C'est déjà pratique de savoir que nous avons modifié le fichier hello.c, mais nous préférerions savoir @@ -501,7 +501,7 @@ status et hg diff pour voir les modifications effectuées, jusqu'à ce que nous soyons assez satisfaits pour décider d'enregistrer notre travail dans un - \textit{changeset}. + changeset. La commande hg commit vous laisse créer une nouvelle révision, nous désignerons généralement @@ -516,9 +516,9 @@ pas garanti qu'elle réussisse du premier coup. En effet, Mercurial enregistre votre nom et votre adresse avec chaque modification que vous effectuez, de manière à ce que vous soyez capable (ou d'autres - le soient) de savoir qui a fait quelle modification. Mercurial essaye + le soient) de savoir qui a fait telle modification. Mercurial essaye automatiquement de découvrir un nom d'utilisateur qui ait un minimum - de sens pour effectuer l'opération de commit avec. Il va essayer + de sens pour effectuer l'opération de commit avec. Il va essayer chacune des méthodes suivantes, dans l'ordre : @@ -544,14 +544,14 @@ Enfin, Mercurial interrogera votre système pour trouver votre nom d'utilisateur local ainsi que le nom de la machine hôte, et il fabriquera un nom d'utilisateur à partir de - ces données. Comme il arrive souvent que ce genre de noms soit + ces données. Comme il arrive souvent que ce genre de nom soit totalement inutile, il vous préviendra en affichant un message d'avertissement. Si tous ces mécanismes échouent, Mercurial n'exécutera pas la commande, affichant un message d'erreur. Dans ce cas, il ne - vous laissera pas effectuer de commit tant que vous n'aurez pas + vous laissera pas effectuer de commit tant que vous n'aurez pas défini un nom d'utilisateur. Vous devriez penser à utiliser la variable @@ -560,7 +560,7 @@ changer le nom d'utilisateur par défaut. Pour une utilisation normale, la manière la plus simple et robuste d'opérer est de créer un fichier .hgrc, voir ci-dessous pour les détails + role="special">.hgrc, voir ci-dessous pour les détails à ce sujet. @@ -576,7 +576,7 @@ <quote>Home directory</quote> sous Windows - Quand on parle de répertoire home, sur une version + Quand on parle de répertoire home, sur une version anglaise d'une installation de Windows, il s'agira habituellement d'un répertoire nommée comme votre nom dans C:\Documents and Settings. Vous pouvez trouver de quelle répertoire @@ -609,7 +609,7 @@ pour votre username, car cette information est destinée à d'autres personnes et non à être interprétée par Mercurial. La convention que la plupart des personnes - suivent est d'utiliser leurs noms suivies de leurs adresses emails, + suivent est d'utiliser leur nom suivie de leur adresse email, comme montré ci-dessus : Le mécanisme interne du serveur web intégré à Mercurial, @@ -621,9 +621,9 @@ - Rédiger un message de \textit{commit} - - Lorsqu'on effectue une opération de commit, Mercurial + Rédiger un message de <quote>commit</quote> + + Lorsqu'on effectue une opération de commit, Mercurial lance automatiquement un éditeur de texte pour permettre de saisir un message qui décrira les modifications effectuées dans cette révision. Ce message est nommé le message de commit. @@ -651,19 +651,19 @@ Mercurial ignore les lignes qui commencent avec HG:, il ne les utilise que pour nous indiquer quels fichiers modifiés il se - prépare à \textit{commiter}. Modifier ou effacer ces lignes n'a - aucune conséquence sur l'opération de commit. + prépare à commiter. Modifier ou effacer ces lignes n'a + aucune conséquence sur l'opération de commit. - Rédiger un message \textit{approprié} + Rédiger un message approprié Comme hg log n'affiche - que la première ligne du message de commit par défaut, il est souvent - considéré comme une bonne pratique de rédiger des messages de commit + que la première ligne du message de commit par défaut, il est souvent + considéré comme une bonne pratique de rédiger des messages de commit qui tiennent sur une seule ligne. Voilà un exemple concret de message - de commit qui ne suit pas cette directive, et + de commit qui ne suit pas cette directive, et qui a donc un résumé peu lisible. @@ -675,7 +675,7 @@ A ce sujet, il faut noter qu'il n'existe pas de règle absolue dans ce domaine. Mercurial lui-même n'interprète pas les - contenus des messages de commit, ainsi votre projet est libre de + contenus des messages de commit, ainsi votre projet est libre de concevoir différentes politiques de mise en page des messages. Ma préférence personnelle va au message court, mais @@ -693,20 +693,20 @@ Une surprise pour les utilisateurs habitués à Subversion Comme n'importe quel autre commande de Mercurial, si - vous soumettez pas de manière explicite les noms des fichiers à - committer à la commande hg commit, elle + vous ne soumettez pas de manière explicite les noms des fichiers à + committer à la commande hg commit, elle va travailler sur l'ensemble du répertoire de travail. Soyez conscient de ceci si vous venez du monde Subversion ou CVS, car vous pourriez - attendre qu'elle opère uniquement le répertoire courant et ses sous + vous attendre à ce qu'elle opère uniquement sur le répertoire courant et ses sous répertoires. - Annuler un \textit{commit} + Annuler un <quote>commit</quote> Si, en rédigeant le message, vous décidez que - finalement vous ne voulez pas effectuer ce commit, il suffit - de quitter simplement l'éditeur sans sauver. Ceci n'aura aucune + finalement vous ne voulez pas effectuer ce commit, il suffit + de quitter simplement l'éditeur sans sauvegarder. Ceci n'aura aucune conséquence sur le dépôt ou les fichiers du répertoire de travail. @@ -714,10 +714,10 @@ Admirer votre travail - Une fois que votre \textit{commit} est terminé, vous + Une fois que votre commit est terminé, vous pouvez utiliser la commande hg tip - pour afficher le \textit{changeset} que vous venez de créer. Cette - commande produit une sortie à l'écran qui est identique à celle du + pour afficher le changeset que vous venez de créer. Cette + commande produit une sortie à l'écran qui est identique à celle du hg log, mais qui n'affiche que la dernière révision du dépôt. @@ -781,7 +781,7 @@ Comme vous le voyez avec une sortie avant et après de la commande hg tip, nous avons réussi à récupérer aisément les modifications dans notre dépôt. Il reste néanmoins - quelque chose à faire avant de placer ces modifications dans l'espace de + quelque chose à faire avant de retrouver ces modifications dans l'espace de travail. @@ -796,14 +796,14 @@ la commande hg incoming, et avant que vous ne décidiez de récupérer ces modifications, quelqu'un peut ajouter de nouvelles révisions dans le dépôt distant. Ce qui signifie que vous - récupérez plus de révision que ce que vous aviez regardées en utilisant + récupérez plus de révisions que ce que vous aviez regardées en utilisant la commande hg incoming. Si vous voulez seulement récupérer ce que vous aviez - vérifier à l'aide de la commande hg - incoming, ou que pour d'autres raisons vous souhaitiez ne + vérifié à l'aide de la commande hg + incoming, ou que pour d'autres raisons vous ne souhaitiez récupérer qu'un sous ensemble des révisions supplémentaires - disponibles, indiquant simplement les modifications que vous souhaitez + disponibles, indiquez simplement les modifications que vous souhaitez récupérer par leurs ID de révision, soit hg pull -r7e95bb. @@ -827,7 +827,7 @@ Il peut sembler un peu étrange que la commande hg pull ne mette pas à jour l'espace de travail automatiquement. Il y a en fait une très bonne raison à cela : vous - pouvez utilisez la commande hg update + pouvez utiliser la commande hg update pour mettre à jour votre espace de travail à l'état dans lequel il était à n'importe quelle révision de l'historique du dépôt. Si vous aviez un espace de travail contenant une ancienne @@ -862,15 +862,15 @@ enfant. Pour mettre à jour l'espace de travail d'une révision - particulière, indiquez un numéro de révision ou un \textit{changeset - ID} à la commande hg update. + particulière, indiquez un numéro de révision ou un changeset + IDhg update. &interaction.tour.older; Si vous ne précisez pas de manière explicite de numéro de révision la commande hg update mettra à jour votre espace de travail avec le contenu de la révison - \textit{tip}, comme montré dans l'exemple ci dessus lors du second + tip, comme montré dans l'exemple ci dessus lors du second appel à hg update. @@ -907,7 +907,7 @@ répertoire de travail alors que quelqu'un d'autre travaille dessus, nous risquerions de perturber son travail. - Qu'est ce qui se passe lorsque vous essayez de récupérer + Que se passe-t'il lorsque vous essayez de récupérer ou de transférer vos modifications et que le dépôt cible a déjà reçu ces modifications ? Rien de bien excitant. @@ -959,7 +959,7 @@ &interaction.tour.outgoing.net; Dans cet exemple, nous allons voir quels changements - nous pourrions transférer vers le dépôt distant, mais le dépôt est, + nous pourrions transférer vers le dépôt distant, mais le dépôt n'est, de manière tout à fait compréhensible, pas configuré pour accepter des modifications d'utilisateurs anonymes. @@ -1005,7 +1005,7 @@ utiliser Mercurial sur un nouveau projet, ce qui fait aussi de ses points forts. Travailler avec une gestion de révision devient très facile, nous pouvons même l'utiliser pour les plus petits projets où - nous aurions probablement jamais penser utiliser un outils aussi + nous aurions probablement jamais pensé utiliser un outil aussi complexe. diff -r 55d1bf9b47a4 -r f4f740bb58be fr/ch03-tour-merge.xml --- a/fr/ch03-tour-merge.xml Mon Sep 14 01:31:50 2009 +0200 +++ b/fr/ch03-tour-merge.xml Tue Sep 15 13:43:02 2009 +0200 @@ -2,7 +2,7 @@ - Un rapide tour de Mercurial: fusionner les travaux + Un tour rapide de Mercurial : fusionner les travaux Nous avons maintenant étudié comment cloner un dépôt, effectuer des changements dedans, et récupérer ou transférer depuis un @@ -11,8 +11,8 @@ Fusionner différents travaux - La fusion est un aspect fondamental lorsqu'on - travaille iavec un gestionnaire de source distribué. + La fusion est un aspect fondamental lorsqu'on + travaille avec un gestionnaire de révisions distribué. @@ -45,13 +45,13 @@ &interaction.tour.merge.cat1; - Et ici est notre légèrement différente version du + Et ici se trouve notre version légèrement différente du dépôt. &interaction.tour.merge.cat2;
- Historique divergent des dépôts <filename + <title>Historique divergeant des dépôts <filename class="directory">my-hello</filename> et <filename class="directory">my-new-hello</filename>. @@ -71,18 +71,18 @@ heads. - Les révisions 'heads' + Les révisions <quote>heads</quote> Rappellez vous que Mercurial enregistre quelle révision est le parent de chaque révision. Si une révision a un parent, nous - l'appelons un enfant(child) ou un descendant de ce parent. Une - "head" est une révision qui n'a donc pas d'enfant. La révision tip - est donc une "head", car c'est la révision la plus récente du dépôt + l'appelons un enfant child ou un descendant de ce parent. Une + head est une révision qui n'a donc pas d'enfant. La révision tip + est donc une head, car c'est la révision la plus récente du dépôt qui n'a pas d'enfant. Il y a des moments où un dépôt peut contenir - plusieurs "head". + plusieurs heads.
- Contenu du dépôt après une récupération ("pull") depuis le + <title>Contenu du dépôt après une récupération (pull) depuis le dépôt <filename class="directory">my-hello</filename> vers le dépôt <filename class="directory">my-new-hello</filename> @@ -95,18 +95,18 @@
Dans la figure , - vous pouvez constater l'effet d'un \textit{pull} depuis le dépôt + vous pouvez constater l'effet d'un pull depuis le dépôt my-hello dans le dépôt my-new-hello. L'historique qui était déjà présent dans le dépôt my-new-hello reste intact, mais une nouvelle révision a été ajoutée. En vous reportant à la figure , vous pouvez voir que le - ID de révision (changeset ID) reste le même dans + ID de révision changeset ID reste le même dans le nouveau dépôt, mais que le numéro de révision reste le même. (Ceci est un parfait exemple de pourquoi il n'est fiable d'utiliser les numéros de révision lorsque - l'on discute d'un \textit{changeset}.) Vous pouvez voir les "heads" + l'on discute d'un changeset.) Vous pouvez voir les heads présentes dans le dépôt en utilisant la commande hg heads. @@ -118,7 +118,7 @@ Que se passe-t-il quand vous essayez d'utiliser la commande hg update pour mettre à - jour votre espace de travail au nouveau "tip" + jour votre espace de travail au nouveau tip &interaction.tour.merge.update; @@ -129,9 +129,9 @@ estime que nous pourrions avoir besoin d'une fusion, à moins de lui forcer la main. À la place, il faut utiliser la commande hg merge pour fusionner les deux - "heads". - - Pour commencer une fusion (merge) entre deux "heads", + heads. + + Pour commencer une fusion (merge) entre deux heads, nous utilisons la commande hg merge. &interaction.tour.merge.merge; @@ -139,7 +139,7 @@ Nous résolvons les conflits dans le fichier hello.c. Ceci met à jour le répertoire de travail de sorte qu'il ne contienne les modifications ne provenance des - deux "heads", ce qui est indiqué par la + deux heads, ce qui est indiqué par la la sortie de la commande hg parents et le contenu du fichier hello.c. @@ -159,7 +159,7 @@ &interaction.tour.merge.commit; Nous avons maintenant un nouveau tip, remarquer qu'il - contient à la fois nos anciennes "heads" et leurs + contient à la fois nos anciennes heads et leurs parents. Ce sont les mêmes révisions que nous avions affichées avec la commande hg parents. @@ -168,13 +168,13 @@ Dans la figure , vous pouvez voir une représentation de ce qui se passe dans l'espace de travail pendant la fusion, et comment ceci affecte le dépôt lors - du "commit". Pendant la fusion, l'espace de travail, qui a deux + du commit. Pendant la fusion, l'espace de travail, qui a deux révisions (changesets) comme parents, voit ces derniers devenir le parent d'une nouvelle révision (changeset).
- Working directory and repository during merge, and - following commit + Répertoire de travail et dépôt pendant une fusion, + et le <quote>commit</quote> qui suit @@ -189,12 +189,12 @@ Fusionner les modifications en conflit - La plupart des fusions sont assez simple à réaliser, mais + La plupart des fusions sont assez simples à réaliser, mais parfois vous vous retrouverez à fusionner des fichiers où la modification touche la même portion de code, au sein d'un même fichier. À moins que ces modification ne soient identiques, ceci aboutira à un conflit, et vous devrez décider comment réconcilier - les différentes modifications dans un tout cohérent. + les différentes modifications dans un ensemble cohérent.
Modifications en conflits dans un document @@ -214,12 +214,12 @@ Mercurial n'a pas de mécanisme interne pour gérer les conflits. À la place, il exécute un programme externe appelé hgmerge. Il s'agit d'un script shell qui est - embarqué par Mercurial, vous pouvez le modifier si vous le voulez. + compris avec Mercurial, vous pouvez le modifier si vous voulez. Ce qu'il fait par défaut est d'essayer de trouver un des différents outils de fusion qui seront probablement installés sur le système. - Il commence par les outils totalement automatiques, et si ils + Il commence par les outils totalement automatiques, et s'ils échouent (parce que la résolution du conflit nécessite une - intervention humaine) ou si ils sont absents, le script tente + intervention humaine) ou s'ils sont absents, le script tente d'exécuter certains outils graphiques de fusion. Il est aussi possible de demander à Mercurial d'exécuter @@ -235,22 +235,22 @@ fonctionnalités classiques des outils graphiques de fusion. Vous pouvez voir une capture d'écran de l'utilisation de kdiff3 dans la figure . Cet outil - effectue une fusion \textit{three-way}, car il y a - trois différentes versions du fichier qui nous intéresse. Le fichier - découpe la partie supérieure de la fenêtre en trois panneaux: + effectue une fusion three-way, car il y a + trois différentes versions du fichier qui nous intéressent. Le fichier + découpe la partie supérieure de la fenêtre en trois panneaux : - A gauche on la version de + À gauche on trouve la version de base du fichier, soit la plus récente version des deux versions qu'on souhaite fusionner. Au centre, il y a notre version du fichier, avec le contenu que nous avons modifié. Sur la droite, on trouve leur version du fichier, celui qui contient la - révision que nous souhaitons intégré. + révision que nous souhaitons intégrer. Dans le panneau en dessous, on trouve le résultat actuel de notre fusion. Notre tâche - consiste donc à remplacement tous les textes en rouges, + consiste donc à remplacer tous les textes en rouges, qui indiquent des conflits non résolus, avec une fusion manuelle et pertinente de notre version et de la leur. @@ -274,14 +274,14 @@ Pour chaque portion de fichier posant problème, nous pouvons choisir de résoudre le conflit en utilisant une combinaison de - texte depuis la version de base, la notre, ou la leur. Nous pouvons + touches depuis la version de base, la notre, ou la leur. Nous pouvons aussi éditer manuellement les fichiers à tout moment, si c'est nécessaire. Il y a beaucoup d'outils de - fusion disponibles, bien trop pour en parler de tous ici. Leurs - disponibilités varient selon les plate formes ainsi que leurs - avantages et inconvénients. La plupart sont optimisé pour - la fusion de fichier contenant un texte plat, certains sont spécialisé + fusion disponibles, bien trop pour parler de tous ici. Leurs + disponibilités varient selon les plateformes ainsi que leurs + avantages et inconvénients. La plupart sont optimisés pour + la fusion de fichier contenant un texte plat, certains sont spécialisés dans un format de fichier précis (généralement XML). @@ -290,12 +290,12 @@ Dans cet exemple, nous allons reproduire la modification de l'historique du fichier de la figure ci dessus. Commençons par créer + linkend="fig:tour-merge:conflict"/> ci-dessus. Commençons par créer un dépôt avec une version de base de notre document. &interaction.tour-merge-conflict.wife; - Créons un clone de ce dépôt et faisons une + Créons un clone de ce dépôt et effectuons une modification dans le fichier. &interaction.tour-merge-conflict.cousin; @@ -315,12 +315,12 @@ &interaction.tour-merge-conflict.pull; Dans cette exemple, je n'utiliserais pas la commande Mercurial - habituelle hgmerge pour effectuer le + habituelle hgmerge pour effectuer la fusion (merge), car il me faudrait abandonner ce joli petit exemple automatisé pour utiliser un outil graphique. À la place, je vais définir la variable d'environnement HGMERGE pour indiquer à Mercurial d'utiliser la commande non-interactive merge. - Cette dernière est embarquée par de nombreux systèmes à la Unix. + Cette dernière est comprise dans de nombreux systèmes à la Unix. Si vous exécutez cet exemple depuis votre ordinateur, ne vous occupez pas de définir HGMERGE. @@ -344,7 +344,7 @@ Si la fusion (merge) automatique ou manuelle échoue, il n'y a rien pour nous empêcher de corriger le tir en - modifiant nous même les fichiers, et enfin effectuer le "commit" du + modifiant nous même les fichiers, et enfin effectuer le commit du fichier: &interaction.tour-merge-conflict.commit; @@ -353,19 +353,19 @@ Où est la <command>hg resolve</command> ? La commande hg resolve a été - introduit dans la version 1.1 de Mercurial, qui a été publié en + introduit dans la version 1.1 de Mercurial, qui a été publiée en décembre 2008. Si vous utilisez une version plus anciennne de Mercurial (exécutez la command hg version pour en - avoir le coeur net), cette commande ne sera pas disponible. Si votre + avoir le cœur net), cette commande ne sera pas disponible. Si votre version de Mercurial est plus ancienne que la 1.1, vous devriez très - fortement considérer une mise à jour à une version plus récente avant + fortement considérer une mise à jour vers une version plus récente avant d'essayer de régler des fusions complexes. - Simplification de la séquence pull-merge-commit + Simplification de la séquence <quote>pull-merge-commit</quote> La procédure pour effectuer la fusion indiquée ci-dessus est simple, mais requiert le lancement de trois commandes à la @@ -375,39 +375,39 @@ hg merge hg commit -m 'Merged remote changes' - Lors du "commit" final, vous devez également saisir un + Lors du commit final, vous devez également saisir un message, qui aura vraisemblablement assez peu d'intérêt. Il serait assez sympathique de pouvoir réduire le nombre d'opérations nécessaire, si possible. De fait Mercurial est - fourni avec une extension appelé fetch + fournit avec une extension appelée fetch qui fait justement cela. - Mercurial fourni un mécanisme d'extension flexible qui permet à chacun + Mercurial fournit un mécanisme d'extension flexible qui permet à chacun d'étendre ces fonctionnalités, tout en conservant le cœur de Mercurial - léger et facile à utiliser. Certains extensions ajoutent de nouvelles + léger et facile à utiliser. Certaines extensions ajoutent de nouvelles commandes que vous pouvez utiliser en ligne de commande, alors que - d'autres travaillent en coulisse, par exemple en ajoutant des + d'autres travaillent en coulisse, par exemple en ajoutant des possibilités au serveur. L'extension fetch ajoute une nouvelle commande nommée, sans surprise, hg fetch. Cette extension résulte en une + role="hg-cmd">hg fetch. Cette extension consiste en une combinaison de hg pull, hg update and hg + role="hg-cmd">hg update et hg merge. Elle commence par récupérer les modifications d'un autre dépôt dans le dépôt courant. Si elle trouve que les - modifications ajoutent une nouvelle "head", elle effectue un "merge", - et ensuite "commit" le résultat du "merge" avec un message généré - automatiquement. Si aucune "head" n'ont été ajouté, elle met à jour le - répertoire de travail au niveau de la nouvelle révision tip. + modifications ajoutent une nouvelle head, elle effectue un merge, + et ensuite commit le résultat du merge avec un message généré + automatiquement. Si aucune head n'a été ajouté, elle met à jour le + répertoire de travail au niveau de la nouvelle révision tip. Activer l'extension fetch est facile. Modifiez votre .hgrc, et soit allez à la section extensions soit créer une section + role="rc-extensions">extensions soit créez une section extensions. Ensuite ajoutez - une ligne qui consiste simplement en \Verb+fetch =. + une ligne qui consiste simplement en fetch =. [extensions] fetch = @@ -431,16 +431,16 @@ Mercurial permet de faire ce genre de modification de manière fluide, à condition de l'informer de ce que nous faisons. Si - vous voulez renommenr un ficher, vous devriez utiliser les commande + vous voulez renommer un ficher, vous devriez utiliser la commande hg rename - Si vous un utilisateur de Unix, vous serez content - de savoir que la commande hg rename command + Si vous êtes un utilisateur d'Unix, vous serez content + de savoir que la commande hg rename peut être abrégée en hg mv. pour changer son nom, ainsi Mercurial peut ensuite prendre la bonne décision, plus tard, en cas de fusionv (merge). - Nous étudierojns en détail l'utilisation de ces commandes, - en détail, dans le chapitre . + Nous étudierons, en détail, l'utilisation de ces commandes + dans le chapitre .