Vous êtes sur la page 1sur 36

Le guide de KDiff3

Joachim Eibl <joachim.eibl at gmx.de> Traduction franaise : Simon Depiets Version 0.9.84 (2004-05-29) Copyright 2002-2004 Joachim Eibl Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with section invariante, with texte de premire de couverture, and with texte de quatrime de couverture. A copy of the license is included in GNU Free Documentation License. KDiff3 est un comparateur fusionneur de fichiers et dossiers qui compare et fusionne deux ou trois fichiers textes ou dossiers montre les diffrences ligne par ligne et caractre par caractre, proposant une fusion automatique facilite, ayant un diteur pour rsoudre facilement les conflits de fusion proposant une transparence rseau via KIO ayant des options pour surligner ou cacher les changements dans les espaces ou commentaires. Ce document dcrit kdiff3 version 0.9.84. Table des matires 1. Introduction Encore une autre interface Diff ? Captures dcrans et caractristiques Plus doptions Visionneuse de diffrences ligne par ligne et caractre par caractre Voir les diffrences despaces en un coup doeil. Triple comparaison Fusion confortable de deux ou trois fichiers. Et ... 2. Documentation de la comparaison et fusion de fichiers Options en ligne de commande Comparer 2 fichiers : Fusionner 2 fichiers : Comparer 3 fichiers : Fusionner 3 fichiers : Cas spcial : fichiers du mme nom Ligne de commande pour lancer une comparaison ou fusion de dossiers : Pour plus dinformations sur les options en ligne de commande, utilisez :

Fentre douverture La saisie en Coller et Lcher Interprter linformation dans les fentres de saisie Fusionner et la Fentre ddition du Rsultat de la Fusion Navigation et dition Slectionner, Copier et Coller Enregistrer Trouver des chanes Options Police Couleurs Options de lditeur Options de Comparaison et de Fusion Fusion de dossiers Divers Configurer les raccourcis clavier Commandes prprocesseur Bases de sed Exemples dutilisations de sed dans KDiff3 Ordre dexcution des commandes prprocesseur Attention 3. Comparaison et Fusion de dossiers avec KDiff3 Introduction Dmarrer une comparaison ou une fusion de dossiers Comparer/Fusionner deux dossiers : Comparer/Fusionner trois dossiers : Information visible La colonne de nom Les colonnes A/B/C et le systme de coloration La colonne dopration La colonne dtat Colonne de statistiques Faire une fusion Options pour la comparaison et la fusion de dossiers Autres fonctions Mode plein cran/cran partag Comparer ou Fusionner un simple fichier 4. Sujets divers Transparence rseau via KIO KIO-Slaves Comment crire des URLs Possibilits des KIO-Slaves Utiliser KDiff3 en tant que KPart 5. Foire Aux Questions 6. Remerciements et licence A. Installation Comment obtenir KDiff3 Configuration minimale

Compilation et Installation

Chapitre 1. Introduction
Table des matires Encore une autre interface Diff ? Captures dcrans et caractristiques Plus doptions Visionneuse de diffrences ligne par ligne et caractre par caractre Voir les diffrences despaces en un coup doeil. Triple comparaison Fusion confortable de deux ou trois fichiers. Et ...

Encore une autre interface Diff ?


Beaucoup doutils graphiques pour diff existent. Pourquoi choisir KDiff3 Laissez moi vous expliquer pourquoi je lai crit. Kdiff3 a t cr car jai eu a faire une fusion difficile. Fusionner est ncessaire quand beaucoup de gens travaillent sur les mmes fichiers dans un projet. Une fusion peut parfois tre automatise, quand loutil de fusion na pas seulement les fichiers modifis (appels "branches"), mais aussi le fichier original (appel "base"). Loutil de fusion choisira automatiquement la modification faite uniquement dans une seule branche. Quand beaucoup de contributeurs auront chang les mmes lignes, alors loutil de fusion dtectera un conflit et vous devrez le rsoudre manuellement. La fusion fut donc difficile car un contributeur a chang beaucoup de choses. Un autre a aussi chang beaucoup de texte dans le mme fichier, ce qui rsulte en beaucoup de conflits lors de la fusion. Loutil que jai utilis ne ma donc montr que les lignes modifies mais pas ce qui avait chang dans ces lignes. La fusion fut un vrai cauchemar. Voila donc le dbut. La premire version a montr les diffrences dans une ligne et les diffrences despaces. Plus tard beaucoup dautres options furent ajoutes pour augmenter lutilit. Par exemple si vous voulez comparer du texte rapidement, alors vous pouvez le copier dans le presse-papiers et le coller dans une autre fentre diff. Une option qui me demanda beaucoup defforts fut la comparaison de dossiers et la facilitation de la fusion, qui a transform le navigateur en navigateur complet. Jespre que KDiff3 marche chez vous aussi. Amusez vous ! Joachim Eibl (2003)

Captures dcrans et caractristiques


Cette capture dcran montre la diffrence entre deux fichiers texte. (Utilisant une ancienne version de KDiff3) :

La fusion trois voies est pleinement supporte. Ceci est utile si deux personnes ont chang le code indpendamment. Le fichier original (la base) est utilis pour aider KDiff3 a slectionner les bons changements. Lditeur de fusion situ sous la fentre diff vous autorise rsoudre les conflits, en vous montrant le rsultat que vous obtiendrez. Vous pouvez aussi diter le rsultat. Cette capture dcran montre trois fichiers en train dtre fusionns.

KDiff3 vous aide aussi comparer et fusionner des dossiers complets. Cette capture dcran montre KDiff3 pendant une fusion de dossiers :

Plus doptions
Visionneuse de diffrences ligne par ligne et caractre par caractre
En utilisant les possibilits daffichages colors dune interface graphique, KDiff3 montre exactement quelle est la diffrence. Quand vous aurez a traiter beaucoup de texte, cela vous aidera beaucoup.

Voir les diffrences despaces en un coup doeil.


Les espaces et alinas apparaissent visiblement. Quand des lignes diffrent seulement dun espace, cela peut tre vu en un coup doeil dans la colonne sur le ct gauche. Plus de problmes quand les gens changent les espaces.

Triple comparaison
Analyser trois fichiers et voir en quoi ils diffrent. Les fentres de gauche/millieu/droite sont appeles A/B/C et on respectivement les couleurs bleu/vert/mauve. Si un des fichiers et le mme et un des fichiers est diffrent sur une ligne alors la couleur montre quel fichier est diffrent. La couleur rouge montre que les deux sont diffrents.

Fusion confortable de deux ou trois fichiers.


KDiff3 peut tre utilis pour fusionner deux ou trois fichiers et faire autant de fusions automatiques que possible. Le rsultat est reprsent dans une fentre modifiable ou la plupart des conflits peuvent tre rsolus avec un simple clic de souris. Slectionnez les boutons A/B/C depuis la barre des boutons pour slectionner la source qui doit tre utilise. Vous pouvez aussi utiliser plus dune source. Cette fentre est aussi un diteur pour les conflits ncessitant des corrections plus pousses pouvant tre corriges sans autre outil.

Et ...
Une navigation rapide via les bouttons. Un clic de souris dans la colonne du sommaire synchronise toutes les fentres pour indiquer la mme position. Slectionnez et copiez depuis nimporte quelle fentre et collez dans la fentre de rsultat de la fusion. La colonne daperu qui montre o les changements et conflits sont situs.

Les couleurs sont ajustables a vos prfrences. Taille des alinas ajustable. Option pour insrer des espaces la place des alinas. Ouvrir les fichiers confortablement via une bote de dialogue ou spcifier les fichiers via la ligne de commande. Chercher une partie dun texte dans toutes les fentres. Trouver (Ctrl+F) et trouver le suivant (F3). Indiquer le numro de ligne pour chaque ligne. Coller le presse-papiers ou tirer un texte dans une fentre diff. Transparence rseau via KIO. Peut tre utilis pour voir les diff dans KDevelop 3. Coupage des mots dans les lignes longues. ...

Chapitre 2. Documentation de la comparaison et fusion de fichiers


Table des matires Options en ligne de commande Comparer 2 fichiers : Fusionner 2 fichiers : Comparer 3 fichiers : Fusionner 3 fichiers : Cas spcial : fichiers du mme nom Ligne de commande pour lancer une comparaison ou fusion de dossiers : Pour plus dinformations sur les options en ligne de commande, utilisez : Fentre douverture La saisie en Coller et Lcher Interprter linformation dans les fentres de saisie Fusionner et la Fentre ddition du Rsultat de la Fusion Navigation et dition Slectionner, Copier et Coller Enregistrer Trouver des chanes Options Police Couleurs Options de lditeur

Options de Comparaison et de Fusion Fusion de dossiers Divers Configurer les raccourcis clavier Commandes prprocesseur Bases de sed Exemples dutilisations de sed dans KDiff3 Ordre dexcution des commandes prprocesseur Attention

Options en ligne de commande


Comparer 2 fichiers :
kdiff3 fichier1 fichier2

Fusionner 2 fichiers :
kdiff3 fichier1 fichier2 -m kdiff3 fichier1 fichier2 -o fichier-rsultat

Comparer 3 fichiers :
kdiff3 fichier1 fichier2 fichier3

Fusionner 3 fichiers :
kdiff3 fichier1 fichier2 fichier3 -m kdiff3 fichier1 fichier2 fichier3 -o fichier-rsultat

Notez que fichier1 sera trait comme tant la base de fichier2 et fichier3.

Cas spcial : fichiers du mme nom


Si tous les fichiers ont le mme nom mais sont situs dans des dossiers diffrents, vous pouvez rduire la saisie en ne spcifiant que le nom dun fichier, pour le premier fichier. Ex :
kdiff3 dos1/fichier dos2 dos3

Ligne de commande pour lancer une comparaison ou fusion de dossiers :


Cest assez similaire, mais cela concerne dsormais des dossiers.
kdiff3 dos1 dos2 kdiff3 dos1 dos2 -o dossier-de-destination kdiff3 dos1 dos2 dos3 kdiff3 dos1 dos2 dos3 -o dossier-de-destination

Pour la comparaison et fusion de dossiers vous pouvez continuer lire ici.

Pour plus dinformations sur les options en ligne de commande, utilisez :


kdiff3 --help Options : -m, --merge -b, --base file -o, --output file --out file --auto --qall --L1 alias1 --L2 alias2 --L3 alias3 -L, --fname alias -u Fusionner. Fichier de base explicite. Par compatibilit avec certains outils. Fichier de rsultat. Implique -m. Ex. : -o newfile.txt Fichier de rsultat, encore. (Par compatibilit avec certains outils). Pas dinterface graphique si tous les conflits se rsolvent tout seuls. (Ncessite -o fichier) Ne pas rsoudre les conflits automatiquement. (Par compatibilit)... Alias pour le fichier 1 (base). Alias pour le fichier 2. Alias pour le fichier 3. Alias alternatif. Mettez cela une fois pour chaque entre. Na pas deffet. Pour la compatibilit avec certains outils.

Fentre douverture
tant donn que plusieurs fichiers doivent tre slectionnes en entre, le programme a une fentre douverture spciale :

La fentre douverture vous permet dditer les noms des fichier la main, en slectionnant un fichier via le navigateur ("Fichier...") ou vous permet de choisir des fichiers rcemment utiliss via la liste dfilante. Si vous rouvrez la fentre, alors les noms actuels seront toujours ici. Le troisime fichier dentre nest pas ncessaire. SI lentre pour "C" reste vide, alors une analyse diff de deux fichiers seulement sera effectue. Vous pouvez aussi slectionner un dossier via "Dossier...". Si pour A un dossier est spcifi alors une comparaison/fusion de dossiers dbutera. Si "Fusionner" est slectionn, alors la ligne "Sortie" devient ditable. Mais il nest pas ncessaire de spcifier le fichier du rsultat de la fusion immdiatement. Vous pouvez aussi le faire au moment de lenregistrement. Le bouton "Configurer..." ouvre la fentre des options pour que vous puissiez mettre en place les options avant de dbuter lanalyse.

La saisie en Coller et Lcher


Parfois vous voulez comparer les parties dun texte qui nest pas un fichier. KDiff3 vous permet aussi de coller le texte du presse-papiers dans une fentre de diff slectionne. Lanalyse diff est alors immdiate. Dans la fentre ouverte vous naurez pas besoin de spcifier des fichiers, mais simplement de la fermer via "Annuler". Vous pouvez aussi utiliser la mthode du tirer/lcher : Tirez un fichier depuis le navigateur ou slectionnez du texte depuis un diteur et lchez le dans la fentre de diff. Quelle est lide ? Parfois un fichier contient deux fonctions similaires, mais vrifier quel niveau elles sont similaires est compliqu si vous devez dabord crer deux fichiers puis les charger. Maintenant vous pouvez simplement copier, coller et comparer les sections en question. Note : Actuellement vous ne pouvez rien tirer depuis KDiff3. Seulement le lchage dans lentre de diff est gr. Attention : Certains diteurs interprtent toujours la mthode du tirer/lcher vers un autre programme comme un couper ( la place de copier) et coller. Vos donnes originales pourraient alors tre perdues.

Interprter linformation dans les fentres de saisie

En haut de chaque fentre il y a sa "ligne dinformations". Les lignes dinformations des fentres de saisie contiennent une lettre "A", "B" ou "C", le nom de fichier et le numro de ligne de la premire ligne visible dans la fentre. (Notez que la fentre "C" est optionnelle). Chaque ligne dinformation apparat dans une couleur diffrente. (Si les chemins sont trop longs, alors vous pouvez dplacer la souris sur la ligne dinformation et une bulle apparatra, vous montrant le nom complet). Les trois fentres de saisies sont assignes aux lettres "A", "B" et "C". "A" a la couleur bleue, "B" le vert et "C" le mauve. (Ce sont les options par dfaut, mais elles peuvent tre changes via le Menu Options).

10

Quand une diffrence est dtecte les couleurs montrent quel fichier diffre. Quand les deux fichiers en entre diffrent, alors la couleur utilise est le rouge par dfaut ("Couleur de conflit" dans les Options). Ce schma de couleur est particulirement utile si vous avez trois fichiers en entre, ce qui sera vu dans la prochaine section (Fusion). A la gauche de chaque texte se trouve la "colonne de rsum". Si des diffrences sont trouves sur une ligne alors la colonne de rsum affich la couleur respective. Pour une diffrence despace seulement la colonne est change. Pour les langages de programmation o les espaces ne sont pas si importants, il est pratique de voir dun coup doeil si quelque chose dimportant a t modifi. (En C/C++ les espaces ne sont intressants que dans les chanes, commentaires, pour le prprocesseur et dans quelques situations trs sotriques). La ligne verticale sparant la colonne de rsum et le texte est interrompue si le fichier en entre na pas de lignes. Quand la coupe des mots est active, alors cette ligne verticale apparat en pointill. Sur le ct droit une colonne d"aperu" est visible gauche de la barre de dfilement verticale. Cela montre la colonne de rsum compresse de lentre "A". Toutes les diffrences et conflits sont visibles dun coup doeil. Quand seulement deux fentre de saisie sont utilises, alors toutes les diffrences apparatront en rouge ici car chaque diffrence est aussi un conflit. Un rectangle noir encadre les parties visibles des entres. Pour les fichiers trs longs, quand le nombre de lignes est plus grand que la hauteur de la colonne daperu en pixels, alors plusieurs lignes partagent la seule ligne daperu. Un conflit a alors la priorit maximale sur les autres simples diffrences, qui ont la priorit sur les lignes ou rien ne change, pour quaucune diffrence ou conflit ne soit perdu ici. En cliquant sur cette colonne daperu le texte correspondant sera affich.

Fusionner et la Fentre ddition du Rsultat de la Fusion

La fentre ddition du rsultat de la fusion (situe sous la fentre de saisie de diff) a aussi une ligne dinformation en haut affichant "Rsultat :", le nom du fichier et "[Modifi]" si vous avez dit quelque chose. Habituellement elle contiendra du texte travers les facilits de fusion automatique, mais conserve souvent quelques conflits.

11

!!! Lenregistrement est dsactiv avant que tous les conflits ne soient rsolus !!! (Utilisez les boutons "Aller au conflit suivant/prcdent" pour trouver les conflits restants). Avec seulement deux fichiers en entre, chaque diffrence est aussi un conflit devant tre rsolu manuellement. Avec trois fichiers en entre, le premier fichier est trait comme la base, alors que les second et troisime fichiers en entre contiennent des modifications. Quand dans une ligne seulement soit B ou C a chang mais pas les deux, la source change sera slectionne. Seulement si B et C ont chang sur les mmes lignes, alors loutil dtectera un conflit devant tre rsolu manuellement. Quand B et C sont les mmes, mais diffrents de A, alors C est slectionn. La fentre ddition du rsultat de la fusion a aussi une colonne de rsum sur la gauche. Elle affiche la lettre de lentre slectionne pour une ligne ou rien si les trois sources taient gales sur une ligne. Pour les conflits, elle affiche un point dinterrogation "?" et la ligne affiche "<Conflit de Fusion>" tout en rouge. tant donn que la rsolution des conflits ligne par ligne prendrait beaucoup de temps, les lignes sont groupes en groupes ayant les mmes caractristiques de diffrences et conflits. Seuls les conflits despaces sont spars des autres conflits pour faciliter la fusion de fichiers o lindentation a chang pour beaucoup de lignes. Quand vous cliquez dans la colonne de rsum avec le bouton gauche de la souris dans une fentre alors le groupe correspondant cette ligne sera slectionn dans toutes les fentres et le dbut de ce groupe sera affich. (Cela peut invoquer un saut de repositionnement automatique dans la fentre si le dbut dun groupe nest pas visible). Ce groupe devient alors le "groupe actuel". Il est surlign et une barre noire apparat sur le ct gauche du texte. Regardez les bouttons de slection de lentre contenant les lettres "A", "B" et "C" dans la barre des bouttons sous la barre de menu. Quand vous cliquez sur un bouton de slection dentre, les lignes de cette entre seront ajoutes la fin du groupe slectionn si ce groupe ne contenait pas dj cette source auparavant. Sinon les lignes de cette entre seront supprimes. En outre, vous pouvez diter directement nimporte quelle ligne ici. La colonne de rsum affichera "m" pour chaque ligne ayant t modifie. Parfois, quand une ligne est supprime soit par fusion automatique ou dition et quaucune autre ligne ne reste dans ce groupe, alors le texte <Pas de ligne la source> apparatra sur cette ligne. Cest juste pour vous souvenir quil y avait une source ici si vous changez dide et slectionnez une ligne de nouveau. Ce texte napparatra pas dans le fichier enregistr ou dans nimporte quelle slection que vous copierez et collerez. Le texte "<Conflit de Fusion>" apparatra dans le presse-papiers si vous copiez et collez du texte contenant une ligne au maximum. Mais faites toujours attention cela. La fusion normale dmarrera par la rsolution automatique de conflits simples. Mais le menu "Fusion" propose quelques actions pour dautres besoins communs. Si vous avez slectionner la mme source pour la plupart des conflits, alors vous pouvez choisir "A", "B" ou "C" partout, ou seulement pour les conflits restant non rsolus, ou pour les conflits despacement non rsolus. Si vous voulez dcider chaque diffrence vous mme, vous pouvez "Mettre des deltas aux conflits". Ou si vous voulez retourner aux choix automatiques de KDiff3 alors slectionnez "Rsoudre automatiquement les conflits simples". KDiff3 redmarre alors la fusion. Pour les actions changeant vos prcdentes modifications KDiff3 vous demandera votre confirmation avant de continuer.

12

Note : Quand vous choisissez une des sources pour les conflits despacement non rsolus et que les options "Ignorer les nombres" ou "Ignorer les commentaires C/C++" sont utilises alors les changements dans les nombres ou commentaires seront aussi traits comme des espaces.

Navigation et dition
La majorit de la navigation sera effectue avec les barres de dfilement et la souris mais vous pouvez aussi naviguer avec les touches. Si vous cliquez dans une des fentres alors vous pouvez utilisez les touches page prcdente, page suivante, home, fin, ctrl-home, ctrl-fin et les flches comme vous le feriez dans les autres programmes. La colonne de rsum situe ct de la barre de dfilement verticale des fichiers en entre peut aussi tre utilise pour naviguer en cliquant dessus. Vous pouvez aussi utiliser la molette de la souris pour monter et descendre. Dans lditeur de rsultat de la fusion vous pouvez aussi utiliser les autres touches pour ldition. Vous pouvez basculer entre les modes insrer et remplacer avec la touche Insertion. (Le mode par dfaut est le mode dinsertion). Un clic gauche dans une colonne de rsum synchronisera toutes les fentres pour quelles affichent le dbut du mme groupe de lignes (comme expliqu dans la section "Fusion"). La barre de boutons contient aussi sept bouttons de navigation avec lesquels vous pouvez naviguer vers la premire/actuelle/dernire diffrence, vers la diffrence prcdente/suivante (ctrl-haut/ctrl-bas), vers le conflit prcdent/suivant (ctrl-pgprc/ctrl-pgsuiv), ou vers le conflit non rsolu prcdent/suivant. Notez que pour KDiff3 un "conflit" qui na pas t rsolu automatiquement au dbut de la fusion reste un "conflit" mme sil est rsolu. Voila la ncessit de distinguer les "conflits non rsolus". Il y a aussi un bouton "Aller automatiquement au conflit non rsolu suivant aprs la slection de la source" (Avance automatique). Si vous activez cette option, alors, quand une source est slectionne, KDiff3 avancera automatiquement en slectionnant le prochain conflit non rsolu. Cela vous aidera si vous voulez toujours ne choisir quune source. Si vous avez besoin de deux sources, ou si vous voulez diter aprs la slection, alors vous voudrez probablement dsactiver cette fonctionnalit. Avant davancer au conflit suivant KDiff3 vous montre les modifications de ce choix pour un court laps de temps. Ce dlai est ajustable dans les Options de Fusion et de Diff : Vous pouvez spcifier le "Dlai davance automatique" en millisecondes entre 0 et 2000. Astuce : Vous tes fatigu deffectuer trop de clics ? - Utilisez un court dlai davance automatique et les raccourcis Ctrl-1/2/3 pour slectionner A/B/C pour les conflits.

Slectionner, Copier et Coller


La fentre dentre naffiche pas de curseur, les slections peuvent donc tre effectues via la souris en cliquant avec le bouton gauche au dbut, en gardant le bouton press et en se dplaant la fin de la slection souhaite, o vous relchez le bouton. Vous pouvez aussi slectionner un mot en double cliquant dessus. Dans lditeur de rsultat de la fusion vous pouvez aussi slectionner via le clavier en gardant le bouton "Maj" press et en naviguant via les flches. Pour copier vers le presse-papiers vous devez cliquez sur le boutton "Copier" (Ctrl-C ou Ctrl-Inser). Mais il existe une fonctionnalit "Copier automatiquement la slection". Si elle est active, alors tout ce que vous slectionnerez sera copi automatiquement vers le presse papier et vous naurez pas besoin de copier. Mais faites attention lorsque vous utilisez cela car le contenu du presse-papiers peut

13

tre effac accidentellement. "Couper" (Ctrl-X ou Maj-Suppr) copie le texte vers le presse-papiers et supprime celui-ci et "Coller" (Ctrl-V ou Maj-Inser) insre le texte du presse-papiers la position du curseur la place de la slection actuelle.

Enregistrer
Lenregistrement ne sera autoris que quand tous les conflits seront rsolus. Si le fichier existe dj et que la fonctionnalit "Effectuer une copie de sauvegarde des fichiers" est active alors le fichier existant sera renomm avec une extension en ".orig", mais si un fichier .orig existe dj il sera supprim. Quand vous quittez ou lancez une autre analyse diff et que les donnes nont pas encore t enregistres, alors KDiff3 vous demandera si vous voulez enregistrer, annuler ou continuer sans enregistrer. (KDiff3 ne saisit aucun signal. Donc si vous "tuez" KDiff3 vos donnes seront perdues). Les fins de ligne sont enregistres selon la mthode normale de lOS. Pour les Unix chaque fin de ligne se termine avec un caractre "\n", tandis que pour les systmes bass sur Win32 chaque ligne se termine avec un retour chariot et "\r\n". KDiff3 ne prserve pas les fins de ligne des fichiers en entre, ce qui signifie aussi que vous ne devriez pas utiliser KDiff3 pour les fichiers binaires.

Trouver des chanes


Vous pouvez chercher une chane dans nimporte quelle fentre de KDiff3. La commande "Chercher..." (Ctrl-F) dans le menu dition ouvre une fentre vous permettant de spcifier la chane rechercher. Vous pouvez aussi slectionner la fentre dans laquelle la chane doit tre cherche. La recherche reste toujours au premier plan. En utilisant "Chercher le suivant" (F3), vous chercherez loccurrence suivante. Si vous slectionner plusieurs fentres, alors la premire fentre sera scanne du dbut jusqu la fin avant que la recherche ne dmarre dans la fentre suivante au premier plan, etc.

Options
Les options et la liste des fichiers rcemment ouverts seront enregistres lorsque vous quitterez le programme, et recharges lorsque vous le dmarrerez. (Menu Options / Configurer KDiff3)...

Police
Slectionnez un taille de police fixe. (Sur certains systmes cette fentre prsentera aussi des tailles de police variable, mais vous ne devriez pas les utiliser). Police italique pour les diffrences : Si vous slectionnez cela, alors les diffrences de texte seront affiches dans la version italique de la police. Si la police ne supporte pas litalique, cela ne fera rien.

Couleurs
Couleur du premier plan :

14

Habituellement le noir. Couleur de larrire plan : Habituellement le blanc. Couleur de larrire plan de Diff : Habituellement le gris clair. Couleur A : Habituellement le bleu fonc. Couleur B : Habituellement le vert fonc. Couleur C : Habituellement le mauve fonc. Couleur de conflit : Habituellement le rouge. Couleur de larrire plan de la slection actuelle : Habituellement le jaune clair. Couleur de larrire plan de la slection diffrant actuelle : Habituellement le jaune fonc Pour les systmes ne comprenant que 16 ou 256 couleurs certaines couleurs ne sont pas disponibles en forme pure. Sur ces systmes le boutton "Par dfaut" choisira une couleur pure.

Options de lditeur
Tabulation insre des espaces : Si ceci est dsactiv et que vous pressez la touche de tabulation, un caractre de tabulation est insr, sinon la quantit approprie de caractres est insre. Taille de la tabulation : Peut tre ajuste pour vos besoins spcifique. Par dfaut, 8. Indentation automatique : Quand vous pressez le bouton Entre ou Retour lindentation de la ligne prcdente est utilise pour la nouvelle ligne.

15

Copier automatiquement la slection : Chaque slection est copie automatiquement vers le presse-papiers quand cette option est active. Style de fin de ligne : Quand vous enregistrez vous pouvez slectionner quel style de fin de ligne vous prfrez. La configuration par dfaut est le choix commun pour le systme dexploitation utilis. Utiliser un encodage local : Pour afficher des caractres trangers. Essayez de changer cela si certains caractres de votre langue ne sont pas affichs correctement.

Options de Comparaison et de Fusion


Quand vous comparez des fichiers, KDiff3 essaie dabord de comparer les lignes qui sont gales dans les trois fichiers. Il ne peut ignorer les espaces que dans cette tape. La seconde tape compare chaque ligne. Dans cette tape les espaces ne seront pas ignors. Durant la fusion les espaces ne seront pas ignors non plus. Se prserver contre le Retour Chariot : Certains diteurs (sur certains systmes) enregistrent les caractres de retour chariot \r et saut de ligne \n, tandis que les autres nenregistrent que le saut de ligne \n. Habituellement KDiff3 ignore le retour chariot, mais alors les fichiers nauront pas la mme taille, mais seront les mmes en comparaison terme terme. Quand cette option est active, alors les caractres de retour chariot seront visibles mais traits comme des espaces. Cette option doit tre dsactive lors dune fusion. Elle est dsactive par dfaut. Ignorer les nombres : Dsactiv par dfaut. Les chiffres (0-9, ., -) seront ignors dans la premire partie de lanalyse durant laquelle la comparaison des lignes est effectue. Dans le rsultat les diffrences seront affiches dans tous les cas, mais elles sont traites comme des espaces. Ignorer les commentaires C/C++ : Dsactiv par dfaut. Les changements dans les commentaires seront traits comme les changements dans les espaces. Ignorer la casse : Dsactiv par dfaut. Les diffrences de casse de caractres (comme A et a) seront traites comme des changements dans les espaces. Commande Prprocesseur : Se reporter la section suivante.

16

Commande prprocesseur de comparaison de ligne : Se reporter la section suivante. Sefforcer : Sefforcer de trouver des diffrences encore plus petites. (Activ par dfaut). Ceci sera probablement efficace pour les fichiers lourds et compliqus, lent pour les fichiers trs lourds. Dlai davance automatique (en ms) : Quand le mode davance automatique est activ, cette option spcifie la dure daffichage du rsultat de la slection avant de sauter au conflit non rsolu suivant. Choix par dfaut pour les espaces lors dune fusion 2/3 fichiers : Rsoudre automatiquement tous les conflits despaces en choisissant le fichier spcifi. (Le choix par dfaut est le choix manuel). Utile si tous les espaces ne sont pas vraiment importants dans les fichiers. Si vous avez besoin de cela occasionellement, il est mieux dutiliser "Choisir A/B/C pour tous les conflits despaces non rsolus" dans le menu de fusion. Notez que si vous activsoit "Ignorer les nombres" ou "Ignorer les commentaires C/C++" alors ce choix automatique est aussi appliqu pour les conflits dans les nombres ou les commentaires.

Fusion de dossiers
Ces options sont en relation avec le scan de dossiers et le droulement de la fusion : Reportez-vous la Documentation sur la Comparaison/Fusion de dossiers pour plus de dtails. Il y a dj une option ici qui est aussi pertinente pour lenregistrement de fichiers seuls : Fichiers de sauvegarde : Quand un fichier est enregistr et quune ancienne version existe dj, alors la version originale sera renomme avec une extension ".orig". Si un ancien fichier de sauvegarde portant lextension ".orig" existe dj, alors il sera supprim sans sauvegarde.

Divers
(Ces options et actions sont disponibles dans les menus ou la barre des boutons). Afficher les numros de ligne : Vous pouvez slectionner si les numros de ligne doivent tre affichs pour les fichiers en entre. Afficher les espaces et les alinas pour les diffrences : Parfois les espaces et alinas visibles peuvent vous dranger. Vous pouvez dsactiver cette option. Afficher les espaces :

17

Dsactivez cette option pour supprimer tous les surlignements ou les changements despaces dans le texte ou dans les colonnes daperu. (Notez que cela sapplique aussi aux changements dans les nombres ou commentaires quand les options "Ignorer les nombres" ou "Ignorer les commentaires" sont actives). Options de laperu : Ces choix ne sont disponibles que si vous comparez trois fichiers. Dans le mode normal toutes les diffrences sont affiches dans une colonne daperu code en une seule colonne. Mais parfois vous pouvez tre particulirement intresss par les diffrences entre seulement deux de ces trois fichiers. En slectionnant laperu "A et B", "A et C" ou "B et C", une seconde colonne daperu sera affiche avec les informations ncessaires ct de laperu normal. Fentre de coupe des mots : Coupe des mots lorsque leur longueur dpasse la largeur de la fentre. Afficher la fentre A/B/C : Parfois vous voudrez mieux utiliser lespace sur lcran pour les longues lignes. Cachez les fentres qui ne sont pas importantes. (Dans le menu Fentre). Sens de la sparation des fentres : Choisir entre les fentres de comparaison affiches cte cte (A ct de B ct de C) ou lune au-dessus de lautre (A sur B sur C). Cela devrait aussi vous aider si les lignes sont longues. (Dans le menu Fentre). Dmarrer une fusion rapide :
Parfois vous voyez des diffrences et vous dcidez de fusionner. "Fusionner le fichier actuel" dans le menu Dossiers fonctionne aussi si vous voulez comparer deux fichiers. Un simple clic dmarre la fusion et utilise le nom de fichier du dernier fichier en entre comme tant le nom du fichier rsultat de la fusion par dfaut. (Quand ceci est utilis pour redmarrer une fusion, alors le nom de fichier rsultat sera conserv).

Configurer les raccourcis clavier


Actuellement seule la version KDE supporte la configuration des raccourcis clavier par lutilisateur. (Menu Configuration / Configurer les raccourcis clavier)...

Commandes prprocesseur
KDiff3 supporte deux options prprocesseur. Commande Prprocesseur : Quand un fichier est lu, il sera trait travers cette commande externe. Le rsultat de cette commande sera visible la place du fichier original. Vous pouvez crire votre propre commande prprocesseur qui remplit des besoins spcifiques. Utilisez cela pour exclure les parties du fichier qui vous gnent, ou corriger automatiquement lindentation, etc.

18

Commande prprocesseur de comparaison de ligne : Quand un fichier est lu, il sera trait travers cette commande externe. Si une commande prprocessus (voir ci-dessus) est aussi spcifie, alors le fichier rsultat de la commande prprocesseur est utilis pour le prprocessus de traitement de lignes. Le rsultat de cette dernire ne sera utilis que durant la phase de comparaison de lignes de lanalyse. Vous pouvez crire votre propre commande prprocesseur qui remplit des besoins spcifiques. Chaque ligne en entre a une ligne en sortie correspondante. Lide est de permettre lutilisateur davoir une plus grande flexibilit de configuration du rsultat de la comparaison. Mais cela ncessite un programme externe, et beaucoup dutilisateurs ne veulent pas en crire un eux-mmes. La bonne nouvelle est que trs souvent sed ou perl feront laffaire. Exemple : Cas simple : Considrons le fichier a.txt (6 lignes) :
aa ba ca da ea fa

Et le fichier b.txt (3 lignes) :


cg dg eg

Sans commande prprocesseur les lignes suivantes seront places les unes ct des autres
aa - cg ba - dg ca - eg da ea fa

Ceci nest probablement pas voulu tant donn que la premire lettre contient linformation intressante actuelle. Pour aider lalgorithme ignorer la seconde lettre nous pouvons utiliser un prprocesseur qui remplacera g par a :
sed s/g/a/

Avec cette commande le rsultat de la comparaison devrait tre :


aa ba ca - cg da - dg ea - eg fa

Lalgorithme de comparaison regarde les fichiers aprs avoir lanc le prprocesseur, mais lcran le fichier est inchang. (Le prprocesseur normal aurait chang aussi les donnes affiches lcran).

19

Bases de sed
Cette section nintroduit quaux fonctions les plus basiques de sed. Pour plus dinformations reportez vous la page info de sed ou http://www.gnu.org/software/sed/manual/html_mono/sed.html. Une version prcompile pour Windows peut tre trouve http://unxutils.sourceforge.net. Notez que les exemples qui suivent partent du principe que la commande sed est dans un dossier de la variable denvironnement PATH. Si ce nest pas le cas, vous devrez spcifier le chemin complet absolu pour la commande. Notez aussi que les exemples qui suivent utilisent les guillemets simples () qui ne fonctionnent pas sous windows. Sur windows vous devez utilisez les doubles guillemets (") la place. Dans ce contexte seule la commande de substitution sed est utilise :
sed s/REGEXP/REPLACEMENT/FLAGS

Avant dutiliser une nouvelle commande dans KDIff3, vous devriez dabord la tester dans la console. Ici la commande echo est utile. Exemple :
echo abrakadabra | sed s/a/o/ -> obrakadabra

Cet exemple affiche une commande sed trs simple qui remplace la premire occurrence de "a" par un "o". Si vous voulez remplacer toutes les occurrences vous aurez besoin du flag "g" :
echo abrakadabra | sed s/a/o/g -> obrokodobro

Le symbole "|" est la commande tuyau qui transfre la sortie de la commande prcdente vers lentre de la commande suivante. Si vous voulez tester avec un fichier plus long vous pouvez utiliser cat sur les systmes bass sur Unix ou type sur les systmes Windows. sed fera la substitution pour chaque ligne.
cat nom-du-fichier | sed options

Exemples dutilisations de sed dans KDiff3


Ignorer les autres types de commentaires
Actuellement KDiff3 ne comprend que les commentaires C/C++. En utilisant la commande prprocesseur de traitement de ligne vous pouvez aussi ignorer dautres types de commentaires, en les convertissant en commentaires C/C++. Exemple : Pour ignorer les commentaires commenant par "#", vous devriez les convertir en "//". Notez que vous devrez aussi activer loption "Ignorer les commentaires C/C++" pour que cela ait un effet. La commande prprocesseur de traitement de ligne approprie serait
sed s/#/\/\//

tant donn que pour sed le caractre "/" a un sens particulier, il est ncessaire de placer le caractre "\" devant chaque "/" dans une chane de remplacement. Parfois le "\" est ncessaire pour ajouter ou supprimer un sens particulier de certains caractres. Le guillemet simple () avant et aprs la commande de substitution est dsormais important, car sinon le shell essaierait dinterprter certains caractres spciaux comme#, $ ou \ avant de les passer sed. Notez que sur Windows vous aurez besoin des doubles marques de citation ici ("). Windows substitue les autres caractres comme %, alors vous pourriez avoir quelques essais faire.

20

Comparaison non sensible la casse


Utilisez la commande prprocesseur de traitement de ligne suivante pour convertir toutes ce qui est situ en entre en majuscules :
sed s/\(.*\)/\U\1/

Ici ".*" est une expression rationnelle qui trouve, dans ce contexte, tous les caractres de la ligne. Le "\1" est la chane de remplacement en rfrence au texte trouv dans la premire paire de "\(" et "\)". Le "\U" convertit le texte insr en majuscules.

Ignorer les mots cls CVS


CVS et dautres systmes de contrle de version utilisent des mots cls pour insrer les chanes gnres automatiquement (info:/cvs/Keyword substitution). Tous suivent le modle "$KEYWORD generated text$". Nous avons maintenant besoin dune commande prprocesseur de traitement de ligne qui ne supprime que le texte gnr :
sed s/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/

Le "\|" spare les mots cls possibles. Vous pouvez vouloir modifier cette liste selon vos besoins. Le "\" avant le "$" est ncessaire car sinon le "$" signifie fin de la ligne. Quand vous ferez des exprimentations avec sed vous pourrez arriver comprendre toutes ces expressions rationnelles. Elles sont utiles car beaucoup dautres programmes supportent ces mmes fonctionnalits.

Ignorer les nombres


Ignorer les nombres est actuellement une option intgre. Mais en tant quautre exemple, cest ce qui se passerait si vous aviez mis comme commande prprocesseur de traitement de ligne.
sed s/[0123456789.-]//g

Chaque caractre dans [ ] est remplac par rien.

Ignorer certaines colonnes


Parfois un texte est trs strictement format, et il y a certaines colonnes que vous voudrez toujours ignorer, tandis que vous voudrez en gardez dautres pour lanalyse. Dans lexemple qui suit les cinq premires colonnes (caractres de chaque ligne) sont ignors, les dix colonnes suivantes sont conserves, puis de nouveaux cinq colonnes sont ignores et le reste de la ligne est conserv.
sed s/.....\(..........\).....\(.*\)/\1\2/

Chaque point . correspond un caractre. Le "\1" et "\2" dans la chane de remplacement rfre au texte correspondant situ entre la premire paire de "\(" et"\)" dnotant que le texte doit tre conserv.

Combiner plusieurs substitutions


Parfois vous voudrez appliquer plusieurs substitutions la fois. Vous pouvez alors utilisez le point-virgule ; pour les sparer les unes des autres. Exemple :

21

echo abrakadabra | sed s/a/o/g;s/\(.*\)/\U\1/ -> OBROKODOBRO

Utiliser perl la place de sed


A la place de sed vous pouvez vouloir utiliser quelque chose dautre comme perl.
perl -p -e s/REGEXP/REPLACEMENT/FLAGS

Mais certains dtails sont diffrents avec perl. Notez que la o sed besoin de "\(" and "\)" perl na besoin que de "(" and ")" sans les \ qui le prcde. Exemple :
sed s/\(.*\)/\U\1/ perl -p -e s/(.*)/\U\1/

Ordre dexcution des commandes prprocesseur


Les donnes traversent tous les prprocesseurs internes et externes dans lordre suivant : Prprocesseur normal, Prprocesseur de traitement de ligne, Ignorer la casse (conversion en majuscule), Dtection des commentaires C/C++, Ignorer les nombres, Ignorer les espaces Les donnes aprs le prprocesseur normal seront conserves pour laffichage et la fusion. Les autres oprations ne modifient que les donnes que lalgorithme de comparaison de lignes peut voir. Dans les rares cas ou vous utiliserez un prprocesseur normal, notez que le prprocesseur de traitement de ligne prend la sortie du prprocesseur normal en tant quentre.

Attention
Les commandes prprocesseur sont trs souvent utiles, mais comme avec toutes les options modifiant vos textes ou cachant certaines diffrences automatiquement, vous pouvez accidentellement sauter certaines diffrences et dans le pire des cas supprimer des donnes importantes. Cest pour cette raison que durant une fusion, si une commande prprocesseur normale est utilise, KDiff3 vous en informera et vous demandera si elle doit tre ou non dsactive. Mais ne vous inquitez pas si une commande prprocesseur de traitement de ligne est active. La fusion ne sera pas termine tant que tous les conflits ne seront pas rsolus. SI vous avez dsactiv "Afficher les espaces", alors les diffrences qui seront supprimes avec la commande prprocesseur de traitement de ligne seront aussi invisibles. Si le boutton denregistrement reste dsactiv durant une fusion ( cause de conflits restants), assurez vous davoir activ "Montrer les espaces". Si vous ne voulez pas fusionner ces diffrences moins importantes manuellement, vous pouvez slectionner "Choisir [A|B|C] pour tous les conflits despaces non rsolus" dans le menu Fusion.

22

Chapitre 3. Comparaison et Fusion de dossiers avec KDiff3


Table des matires Introduction Dmarrer une comparaison ou une fusion de dossiers Comparer/Fusionner deux dossiers : Comparer/Fusionner trois dossiers : Information visible La colonne de nom Les colonnes A/B/C et le systme de coloration La colonne dopration La colonne dtat Colonne de statistiques Faire une fusion Options pour la comparaison et la fusion de dossiers Autres fonctions Mode plein cran/cran partag Comparer ou Fusionner un simple fichier

Introduction
Souvent les programmeurs doivent modifier beaucoup de fichiers dans un dossiers pour parvenir leur but. Pour cela KDiff3 vous permet aussi de comparer et de fusionner des dossiers complets rcursivement ! Bien souvent la comparaison et la fusion de dossiers semble bien complique, il y a beaucoup de dtails dont que vous devriez savoir. Le plus important est bien sur le fait que maintenant beaucoup de fichiers peuvent tre affects par chaque opration. Si vous navez pas de sauvegardes de vos donnes originales, alors il peut tre trs difficile voire impossible de revenir ltat original. Donc, avant de dmarrer une fusion, assurez-vous que vos donnes sont en scurit, et quun retour ltat initial est possible. Vous pouvez faire une archive ou utiliser un systme de contrle de version (CVS), mais mme les programmeurs expriments et les intgrateurs ont besoin des anciennes sources. Et notez que mme si moi (auteur de KDiff3) ait essay de faire de mon mieux, je ne peux pas garantir quil ny ait pas de bogues. Et selon la GNU-GPL il ny a AUCUNE GARANTIE sur quoi que ce soit pour ce programme. Alors soyez humble et gardez toujours lesprit : Lerreur est humaine, mais pour vraiment faire nimporte quoi vous avez besoin dun ordinateur. Voila ce que ce programme peut faire pour vous : KDiff3... ...lit et compare deux ou trois dossiers rcursivement, ... fait spcialement attention aux liens symboliques, ... vous permet de naviguer dans vos fichiers avec des double-clics, ... pour chacun deux propose une opration de fusion, que vous pouvez changer avant de dmarrer une fusion de dossiers,

23

... vous permet de simuler la fusion et de lister les actions qui auraient eu lieu, sans les faire, ... vous permet de faire rellement la fusion, et vous permet dinteragir lorsquune action manuelle est ncessaire, ... vous permet de lancer lopration pour tous les lments (touche F7) ou pour llment slectionn (touche F6), ... vous permet de continuer la fusion aprs une interaction manuelle avec la touche F7, ... cre des copies de sauvegarde en option, portant lextension ".orig", ...

Dmarrer une comparaison ou une fusion de dossiers


Cest trs similaire la fusion et la comparaison dun seul fichier. Vous devrez juste spcifier les dossiers depuis la ligne de commande ou la fentre douverture de fichiers.

Comparer/Fusionner deux dossiers :


kdiff3 dos1 dos2 kdiff3 dos1 dos2 -o dosdedest

Si aucun dossier de destination nest spcifi, alors KDiff3 utilisera dos2.

Comparer/Fusionner trois dossiers :


kdiff3 dos1 dos2 dos3 kdiff3 dos1 dos2 dos3 -o dossier de destination

Quand trois dossiers sont fusionns alors dos1 est utilis comme la base de la fusion. Si aucun dossier de destination nest spcifi, alors KDiff3 utilisera dos3 comme dossier de destination de la fusion. Notez que seule la comparaison dmarre automatiquement, pas la fusion. Pour cela vous devrez slectionner le choix du menu ou appuyez sur la touche F7. (Plus de dtails la suite).

Information visible
Lors de la lecture des dossiers, une bote de dialogue apparat vous informant de la progression. Si vous annulez le scan de dossier, alors seuls les fichiers dj compars seront lists. Quand le scan de dossiers est termin KDiff3 affiche une liste avec les rsultats gauche, ...

24

... et les dtails concernant llment actuellement slectionn droite :

La colonne de nom
Chaque fichier et dossier ayant t trouv durant le scan et affich ici dans une arborescence. Vous pouvez slectionner un lment en cliquant dessus avec la souris. Les dossiers sont ferms par dfaut. Vous pouvez les dvelopper ou les fermer on cliquant sur "+"/"-", en double cliquant sur llment ou simplement en utilisant les flches gauche/droite du clavier. Le menu "Dossier" contient aussi deux actions "Naviguer dans tous les sous-dossiers" et "Refermer tous les sous-dossiers" avec lesquelles vous pouvez fermer ou dvelopper tous les dossiers dun seul coup. Si vous double-cliquez sur un fichier, alors la comparaison dmarre et la fentre de comparaison apparatra. Limage de la colonne de nom reflte du type de fichier dans le premier dossier ("A"). Cela peut tre : Fichier normal Dossier normal (image de dossier)

25

Lien vers un fichier (image de fichier avec une flche) Lien vers un dossier (image de dossier avec une flche) SI le type de fichier est diffrent dans les autres dossiers, alors cela est visible dans les colonnes A/B/C et dans la fentre affichant les dtails concernant les lments slectionns. Notez que dans un cas comme cela aucune opration de fusion ne peut tre slectionne automatiquement. Quand une fusion est dmarre, alors lutilisateur sera inform de problmes de ce type.

Les colonnes A/B/C et le systme de coloration


Comme cela peut tre vu dans limage ci-dessous les couleurs rouge, vert, jaune et noir sont utilises dans les colonnes A/B/C. Noir : Cela ne semble pas exister dans ce dossier. Vert : lment le plus rcent. Jaune : Plus vieux que le vert, plus rcent que le rouge. Rouge : lment le plus ancien. Mais pour les lments qui sont identiques dans la comparaison leur couleur est aussi identique mme si leur ge ne lest pas. Les dossiers sont considrs comme gaux si tous les lments quils contiennent sont gaux. Alors ils auront aussi la mme couleur. Mais lge dun dossier nest pas considr pour sa couleur. Lide pour le schma de coloration vient de dirdiff. Les couleurs ressemblent aux couleurs dune feuille dun arbre qui est verte au printemps, puis devient jaune lautomne pour devenir rouge lhiver.

La colonne dopration
Aprs avoir compar les dossiers, KDiff3 value aussi une proposition pour lopration de fusion. Cela est affich dans la colonne "Opration". Vous pouvez modifier lopration en cliquant sur lopration que vous voulez changer. Un petit menu se droulera vous permettant de slectionner une opration pour cet lment. (Vous pouvez aussi slectionner les oprations les plus importantes via le clavier. Ctrl+1/2/3/4/Del slectionnera ainsi respectivement A/B/C/Fusion/Suppression (si disponibles). Cette opration sera excute durant la fusion. Cela dpend de llment et du mode de fusion dans lequel vous tes. Le mode de fusion est un des modes qui suit Fusion trois dossiers ("A" est considr comme la base des deux autres). Fusion de deux dossiers. Deux dossiers en mode synchronis (activ via loption "Synchroniser les dossiers"). Dans le cas dune fusion trois dossiers lopration propose sera : Si pour un lment ...

26

... les trois dossiers sont gaux : Copie depuis C ... A et C sont gaux mais B ne lest pas : Copier depuis B (ou si B nexiste pas, supprimer la destination si elle existe) ... A et B sont gaux mais C ne lest pas : Copier depuis C (ou si C nexiste pas, supprimer la destination si elle existe) ... B et C sont gaux mais A ne lest pas : Copier depuis C (ou si C nexiste pas, supprimer la destination si elle existe) ... seul A existe : Supprimer la destination (si elle existe) ... seul B existe : Copier depuis B ... seul C existe : Copier depuis C ... A, B et C ne sont pas gaux : Fusion ... A, B et C nont pas le m me type de fichier (par exemple A est un dossier, B un fichier : "Erreur : Conflit de types de fichiers". Tant que des lments comme ceux-ci existent la fusion de dossiers ne peut pas commencer. Dans la fusion deux dossiers, lopration propose sera : Si pour un lment ... les deux dossiers sont gaux : Copier depuis B ... A existe, mais pas B : Copier depuis A ... B existe, mais pas A : Copier depuis B ... A et B existent mais ne sont pas gaux : Fusion ... A, et B nont pas le mme type de fichier (par exemple A est un dossier, B un fichier : "Erreur : Conflit de types de fichiers". Tant que des lments comme ceux-ci existent la fusion de dossiers ne peut pas commencer. Le mode de synchronisation est actif si il ny a que deux dossiers, quaucune destination explicite na t spcifie et que loption "Synchroniser les dossiers" est active. KDiff3 slectionne alors une opration par dfaut pour que les deux dossiers soient les m mes aprs-coup. Si pour un lment ... ... les deux dossiers sont gaux : Rien ne sera fait. ... A existe, mais pas B : Copier A vers B ... B existe, mais pas A : Copier B vers A ... A et B existent, mais sont diffrents : Fusion et stockage du rsultat dans les deux dossiers. Pour lutilisateur le nom de fichier visible est B, mais alors KDiff3 copie aussi B vers A). ... A, et B nont pas le mme type de fichier (par exemple A est un dossier, B un fichier : "Erreur : Conflit de types de fichiers". Tant que des lments comme ceux-ci existent la fusion de dossiers ne peut pas commencer.

27

Quand deux dossiers sont fusionns et que loption "Copier le plus rcent la place de fusionner" est slectionne, alors KDiff3 regardera les dates et proposera de choisir le fichier le plus rcent. Si les fichiers ne sont pas gaux mais ont les mmes dates alors lopration contiendra "Erreur : Les dates sont les mmes mais les fichiers ne le sont pas". Tant que des lments comme ceux-ci existent la fusion ne pourra pas commencer.

La colonne dtat
Durant la fusion, les fichiers seront traits les uns aprs les autres. La colonne dtat affichera "Termin" pour les lments o lopration de fusion sest bien droule, et dautres textes si une chose non attendue est arrive. Quand une fusion est termine, vous devriez faire une dernire vrification pour voir si ltat de tous les lments est correct.

Colonne de statistiques
Quand le mode de comparaison de fichiers "Analyse complte" est activ dans les options, alors KDiff3 affichera des colonnes contenant le nombres de conflits non rsolus, rsolus et conflits despacement ou non. (La colonne rsolu saffichera seulement lors de la comparaison ou fusion de trois dossiers).

Faire une fusion


Vous pouvez soit fusionner llment slectionn actuellement (fichier ou dossier), out tous les lments. Quand vous aurez fait tous les choix (aussi dans les sous-dossiers) alors vous pourrez dmarrer la fusion. Soyez conscient que si vous ne spcifiez pas de dossier de destination explicitement, alors la destination sera "C" dans le mode de fusion a trois dossiers, "B" dans le mode de fusion deux dossiers, et dans le mode synchronis, ce sera "A" ou/et "B" Si vous avez spcifi un dossier de destination vrifiez aussi que tous lments devant tre la sortie, sont dans larborescence. Il y a quelques options qui font que certains lments sont oublis de la comparaison et la fusion de dossiers. Vrifiez ces options pour viter des mauvaises surprises : "Dossiers rcursifs" : Si cette option est dsactive, alors les lments contenus dans les sous-dossiers ne seront pas trouvs. "Modle"/"Anti-modle" : Inclure/exclure les lments qui correspondent "Exclure les fichiers cachs" "Ne lister que les diffrences" : Les fichiers qui sont identiques dans tous les dossiers napparatront pas dans larborescence, ni dans le dossier de destination. (Dans la version actuelle, vous devez rescanner via "Dossier"/"Rescan" vous mme aprs avoir chang les options affectant le scan de dossiers). Si vous tes satisfaits ici, le reste et simple.

28

Pour fusionner tous les lments : Slectionnez "Dmarrer/Continuer la fusion de dossiers" dans le menu "Dossier" ou appuyez sur la touche F7 (qui est le raccourci). Pour fusionner seulement llment actuel : Slectionnez "Lancer lopration pour llment actuel" ou appuyez sur F6. Si cause de conflits de type de fichiers certains lments portant des oprations non valables existent, alors un bote de dialogue apparatra et certains de ces lments seront points, pour que vous puissiez slectionner une opration valable Si vous fusionnez tous les lments, une fentre apparatra vous proposant de "Le faire", "Le simuler" ou "Annuler". Slectionnez "Le simuler" si vous voulez voir comment cela serait sans le faire rellement. Une liste de toutes les oprations sera affiche. Sinon slectionnez "Le faire" pour dmarrer rellement la fusion. Alors KDiff3 lancera lopration spcifie pour tous les lments. Si une interaction manuelle est ncessaire (fusion dun seul fichier), alors une fentre de fusion souvrira (voir la grosse capture dcran). Quand vous en aurez termin avec un fichier, slectionnez de nouveau "Dmarrer/Continuer la fusion de dossiers" ou utilisez la touche F7. SI vous navez pas encore enregistr les rsultats, une fentre vous le proposera. Alors KDiff3 continuera avec llment suivant. Quand KDIff3 rencontre une erreur, il vous en informe et affiche linformation dtaille de ltat. Au bas de cette liste, il y aura quelques messages derreur qui vous aideront comprendre la cause du problme. Quand vous continuerez la fusion, KDiff3 vous proposera de ressayer ou de sauter llment qui caus le problme. Cela signifie quavant de continuer vous pouvez choisir une autre opration ou rsoudre le problmes par dautres moyens. Quand la fusion est complte, alors KDiff3 vous informera via une bote de dialogue. Si certains lments ont t fusionns individuellement, KDiff3 sen rappellera (tant que la session de fusion continue), et ne fusionne pas ces lments de nouveau plus tard quand la fusion de tous les lments est lance. Mme si la fusion a t saute ou si rien na t enregistr ces lments sont compts comme complts. La fusion ne sera refaite que si vous changez lopration de fusion de llment.

Options pour la comparaison et la fusion de dossiers


Les options de Kdiff3 (menu "Configuration"/"Configurer KDiff3...") ont maintenant une section appele "Fusion de dossiers" contenant ces options : Dossiers rcursifs : Slectionner si il faut rechercher les dossiers rcursivement. Modle(s) de fichier : Seuls les fichiers qui correspondent un modle ici seront mis dans larborescence. Plus dun modle peut tre spcifi en utilisant le point-virgule ";" comme sparateur. Les jokers valables sont * et ? (par exemple pour "*.cpp;*.h". Loption par dfaut est "*". Les dossiers ne

29

seront pas reconnus par ce modle. Anti-modle(s) : Les fichiers et dossiers correspondants cette rgle seront exclus de larborescence. Plus dun modle peut tre spcifi ici en utilisant le point-virgule ";" comme sparateur. Les jokers valides sont : * et ?. Le modle par dfaut est "*.orig;*.o". Ignorer comme CVS : Ignorer les fichiers et dossiers qui seraient aussi ignors par CVS. Beaucoup de fichiers gnrs automatiquement sont ignors par CVS. Le gros avantage est que cela peut tre spcifique un dossier via un fichier local ".cvsignore". (Reportez-vous info:/cvs/cvsignore). Trouver les fichiers et dossiers cachs : Sur certains systmes de fichiers les fichiers ont un attribut "Cach". Sur dautres un nom de fichier commenant par un point "." le cache. Cette option vous permet de dcider si il faut inclure ces fichiers dans larborescence ou non. Option active par dfaut. Suivre les liens vers les fichiers : Pour les liens vers les fichiers : Quand cette option est dsactive, alors les liens symboliques sont compars. Quand elle est active, alors ce sont les fichiers situ derrire les liens qui sont compars. Dsactive par dfaut. Suivre les liens vers les dossiers : Pour les liens vers les dossiers : Quand dsactiv, alors les liens symboliques seront compars. Quand active alors le lien sera trait comme un dossier et sera scann rcursivement. (Notez que le programme ne vrifie pas si le lien est "rcursif". Si par exemple un dossier contenait un lien vers lui-mme, cela causerait une boucle infinie, et aprs quelque temps il y aurait dpassement de tampon ou toute la mmoire serait utilise, crashant le programme. Ne lister que les diffrences : Seuls les lments qui ne sont pas gaux dans tous les dossiers seront lists et seuls les fichiers changs seront visibles. Ici les fichiers tant gaux dans tous les dossiers ne seront pas copis durant une fusion, vous pouvez oublier quelques fichiers aprs. (Cette option a de fortes chances dtre change dans une prochaine version). Dsactive par dfaut. Mode de comparaison des fichiers : Comparaison binaire Cest le mode de comparaison de fichiers par dfaut. Analyse complte Faire une analyse complte de chaque fichier et afficher la colonne dinformations statistiques. (Nombre de conflits rsolus, non rsolus, despacement ou non). Lanalyse complte est plus lente quune simple analyse binaire, et plus lente quand utilise sur des fichiers ne contenant pas du texte. (Spcifiez les anti-modles de fichiers appropris).

30

Croire la date de modification : Si vous comparez des gros dossiers sur un rseau lent, cela peut tre plus rapide de ne comparer que les dates de modification et les longueurs des fichiers. Mais cette augmentation de vitesse comporte nanmoins un petit doute. Utilisez cette option avec prcaution. Dsactive par dfaut. Croire la taille : Identique croire la date de modification. Pas de relle comparaison, les deux fichiers sont considrs comme gaux si leur tailles sont gales. Cest utile lorsquune opration de copie ne conserve pas la date de modification. Utilisez cette option avec prcaution. Dsactiv par dfaut. Synchroniser des dossiers : Active le "Mode synchroniser" quand deux dossiers sont compars et quil ny a pas de dossier de destination explicitement spcifi. Dans ce mode les oprations proposes seront choisies pour que les deux dossier sources soient gaux aprs coup. Aussi le rsultat de la fusion sera crit dans les deux dossiers. Dsactiv par dfaut. Copier le plus rcent au lieu de fusionner : Au lieu de fusionner lopration propose sera copier la source la plus rcente si des changements ont eu lieu. (Considr comme peu sur, car cela implique la connaissance que lautre fichier na pas t dit. Vrifiez le pour vous assurez dans tous les cas). Dsactiv par dfaut. Fichiers de sauvegarde : Si un fichier ou un dossier complet est remplac par un autre ou est supprim alors la version originale sera renomme avec une extension ".orig". Si un ancien fichier de sauvegarde portant lextension ".orig" existe toujours alors il sera supprim sans sauvegarde. Cela affecte aussi la fusion de simples fichiers, pas seulement le mode de fusion de dossiers. Activ par dfaut.

Autres fonctions
Mode plein cran/cran partag
Habituellement la vue de la liste de fusion de dossiers reste visible quand un fichier simple est compar ou fusionn. Avec la souris vous pouvez dplacer la barre de sparation qui spare la liste de fichiers de la fentre de comparaison. Si vous ne voulez pas faire cela, vous pouvez dsactiver "Scinder la fentre" Dans le menu "Dossier". vous pouvez aussi utiliser "Basculer la vue" dans le menu "Dossier" pour basculer entre la liste de fichiers et la fentre de comparaison qui occupait tout lcran.

Comparer ou Fusionner un simple fichier


Probablement vous prfrerez un simple double clic sur un fichier pour le comparer. Nanmoins il existe aussi une entre dans le menu "Dossier". vous pouvez aussi fusionner directement un simple fichier, sans lancer la fusion de dossiers via "Fusionner un simple fichier" dans le menu "Dossier". A lenregistrement des rsultats ltat sera valid, et le fichier ne sera plus fusionn si une fusion de

31

dossiers est dmarre. Mais notez que linformation de ltat sera perdue lorsque vous relancerez un scan de dossier via : "Dossier"/"Rescanner"

Chapitre 4. Sujets divers


Table des matires Transparence rseau via KIO KIO-Slaves Comment crire des URLs Possibilits des KIO-Slaves Utiliser KDiff3 en tant que KPart

Transparence rseau via KIO


KIO-Slaves
KDE supporte la transparence rseau via KIO. KDiff3 utilise cela pour lire les fichiers en entre ou scanner les dossiers. Cela signifie que vous pouvez spcifier des fichiers et des dossiers locaux ou distants via des URL. Exemple :
kdiff3 test.cpp ftp://ftp.faraway.org/test.cpp kdiff3 tar:/home/hacker/archive.tar.gz/dos /dos

La premire ligne compare un fichier local avec un fichier sur un serveur FTP. La seconde compare un dossier contenu dans une archive compresse a un dossier local. Les autres KIOslaves intressants sont : Fichiers depuis le WWW (http:), Fichiers depuis un FTP (ftp:), Transfert de fichier crypt (fish;, sftp;), Ressources Windows (smb:), Fichiers locaux (file:), Dautres choses sont possibles, mais probablement moins utiles sont : Pages man (man:), Pages info (info:),

32

Comment crire des URLs


Une URL a une syntaxe diffrence par rapport aux chemins pour les fichiers et dossiers locaux. Certains lments doivent tre considrs : Un chemin peut tre relatif et contenir "." ou "..". Ce nest pas possible pour les URL qui sont toujours absolues. Les caractres spciaux doivent tre crits avec des espaces ("#"->"%23", espace >"%20", etc). Par exemple un fichier nomm "#foo#" aura lURL "file:/%23foo%23". Quand les URLs ne fonctionnent pas comme attendu, essayez de les ouvrir tout dabord avec Konqueror.

Possibilits des KIO-Slaves


La transparence rseau un inconvnient : Toutes les ressources nont les mmes possibilits. Parfois ceci est d au systme de fichiers du serveur, parfois au protocole. Voici une liste de restrictions : Parfois il ny a pas de support des liens. Ou il ny a pas moyen de distinguer si un lien pointe vers un fichier ou un dossier ; on estime que cest toujours un fichier.(ftp :, sftp :). Ne peut pas toujours dterminer la taille des fichiers. Support limit des permissions. Il est impossible de modifier les permissions ou la date de dernire modification, les permissions ou la date de dernire modification dune copie diffrent donc de loriginal. (Voir loption "Croire la taille"). (Modifier les permissions ou la date de dernire modification nest possible que pour les fichiers locaux).

Utiliser KDiff3 en tant que KPart


KDiff3 fait partie de KPart. Actuellement il implmente linterface KParts::ReadOnlyPart. Son utilisation principale est en tant que visionneur de diffrences pour KDevelop. KDevelop dmarre tout le temps par le visionneur de diffrences interne. Pour invoquer KDiff3, faites un clic droit sur le visionneur de diffrences et slectionnez "Afficher dans KDiff3Part" depuis le menu contextuel. KDiff3 a normalement besoin de deux fichiers complets en entre. Quand utilis dans KPart, KDiff3 estimera que le fichier en entre est un fichier patch dans le format unifi. KDiff3 retrouvera alors les noms de fichiers originaux depuis le patch. Au moins un des deux fichiers doit tre disponible. Kdiff3 invoquera alors patch pour recrer le second fichier. Dans Konqueror, vous pouvez slectionner un fichier patch et slectionner "Aperu dans"-"KDiff3Part" depuis le menu contextuel. Soyez conscient que cela ne fonctionnera pas si aucun des fichiers originaux nest disponible, et que ce nest pas fiable si les fichiers originaux ont chang depuis que le patch a t gnr.

33

Quand lanc lintrieur de KPart, KDiff3 ne propose quune comparaison deux fichiers, une barre doutils et un menu trs petits. La fusion et la comparaison de dossiers nest donc pas gre.

Chapitre 5. Foire Aux Questions


Ce document a peut-tre t mis jour depuis son installation sur votre ordinateur. Vous trouverez la dernire version sur http://docs.kde.org/current/kdeextragear-1/. 5.1. Pourquoi lappeler "KDiff3" ? 5.2. Pourquoi le logiciel est-il sous licence GPL ? 5.3. Certains boutons ou fonctions sont manquantes. Quel est le problme ? 5.4. Souvent les lignes similaires mais non identiques apparaissent cte cte mais parfois pas. Pourquoi ? 5.5. Pourquoi tous les conflits doivent-ils tre rsolus avant que le rsultat de la fusion puisse tre enregistr ? 5.6. Pourquoi lditeur dans la fentre de rsultat na pas de fonction "annuler" ? 5.7. Quand jai supprim du texte, soudainement, "<Pas de ligne de la source>" est apparu et ne peut tre supprim. Quest-ce que cela signifie et comment supprimer cela ? 5.8. Pourquoi KDiff3 ne supporte-t-il pas le surlignement des syntaxes ? 5.9. Il y a beaucoup dinformations ici, mais votre question ne trouve toujours pas de rponse ? 5.1. Pourquoi lappeler "KDiff3" ? Des outils nomms "KDiff" et "KDiff2" (dsormais appel "Kompare") existent dj. "KDiff3" suggre aussi quil peut fusionner comme loutil "diff3" dans la collection des Outils Diff. 5.2. Pourquoi le logiciel est-il sous licence GPL ? Jutilise les programmes GPL depuis trs longtemps dsormais et jai appris beaucoup de choses en jetant un oeil aux sources. Voici mon "Merci" tous les programmeurs qui ont aussi ou qui feront aussi de mme. 5.3. Certains boutons ou fonctions sont manquantes. Quel est le problme ? Vous avez compil depuis la source mais vous navez probablement pas spcifier le bon prfixe de KDE lors de la configuration. Par dfaut configure veut installer dans /usr/local mais dans ce cas KDE ne peut trouver le fichier de ressource de linterface utilisateur (c..d. kdiff3ui.rc). Le fichier README contient plus dinformations propos du prfixe correct. 5.4. Souvent les lignes similaires mais non identiques apparaissent cte cte mais parfois pas. Pourquoi ? Les lignes ou seules les quantits despaces sont diffrentes sont traites comme "gales", tandis quune diffrence dun caractre seulement peut changer ltat des lignes en "diffrentes". Si des lignes similaires apparaissent cte cte, cest actuellement une concidence mais heureusement cest souvent le cas. 5.5. Pourquoi tous les conflits doivent-ils tre rsolus avant que le rsultat de la fusion puisse tre enregistr ?

34

Pour chaque section gale ou diffrente, lditeur dans la fentre de rsultat de la fusion se souvient ou elle commence ou se termine. Cela est ncessaire pour que les conflits puissent tre rsolus manuellement en slectionnant simplement le bouton de source (A, B ou C). Cette information sera perdue quand vous enregistrerez un texte et cest trop compliqu de crer un format de fichier spcial supportant lenregistrement et la restauration de toutes les informations ncessaires. 5.6. Pourquoi lditeur dans la fentre de rsultat na pas de fonction "annuler" ? Ctait trs compliqu jusqu prsent. Vous pouvez toujours restaurer une version depuis une source (A, B ou C) en cliquant sur le bouton respectif. Pour une dition importante, lutilisation dun autre diteur comme Kwrite est recommande. 5.7. Quand jai supprim du texte, soudainement, "<Pas de ligne de la source>" est apparu et ne peut tre supprim. Quest-ce que cela signifie et comment supprimer cela ? Pour chaque section gale ou diffrente, lditeur dans la fentre de rsultat de fusion se souvient, de son dbut et de sa fin. "<Pas de ligne de la source>" signifie quil ny a plus rien dans une section, mme plus de caractre de nouvelle ligne. Cela peut apparatre soit lors de la fusion automatique ou lors de ldition. Ce nest pas un problme, tant donn que cela napparatra pas dans le fichier enregistr. Si vous voulez que la source originale rapparaisse, slectionnez juste la section (un clic sur la colonne de rsum de gauche) et cliquez alors le bouton de source avec le contenu ncessaire (A/B ou C). 5.8. Pourquoi KDiff3 ne supporte-t-il pas le surlignement des syntaxes ? KDiff3 utilise dj beaucoup de couleurs pour le surlignement des diffrences. Plus de surlignement amnerait de la confusion. Utilisez un autre diteur pour cela. 5.9. Il y a beaucoup dinformations ici, mais votre question ne trouve toujours pas de rponse ? Veuillez menvoyer vos questions. Japprcie chaque commentaire.

Chapitre 6. Remerciements et licence


KDiff3 - Outil de Comparaison et de Fusion de Fichiers et Dossier Programme protg par copyright 2002-2004 Joachim Eibl <joachim.eibl at gmx.de> Beaucoup de bonnes ides et de rapports de bogue viennent de collgues et de beaucoup dinconnus du Web. Merci ! Documentation Copyright (c) 2002-2004 Joachim Eibl <joachim.eibl at gmx.de> Simon Depiets Cette documentation est soumise aux termes de la Licence de Documentation Libre GNU (GNU Free Documentation License). Ce programme est soumis aux termes de la Licence Gnrale Publique GNU (GNU General Public License).

35

Annexe A. Installation
Table des matires Comment obtenir KDiff3 Configuration minimale Compilation et Installation

Comment obtenir KDiff3


Vous pouvez tlcharger la dernire version de KDiff3 depuis sa page web http://kdiff3.sourceforge.net. KDiff3 est aussi disponibles sur dautres plates-formes. Veuillez vous reporter la page web pour plus de dtails.

Configuration minimale
Pour utiliser avec succs toutes les fonctionnalits de KDiff3, vous aurez besoin de KDE >3.1. Pour plus dinformations sur le lancement de KDiff3 sur dautres plates-formes sans KDE, veuillez vous reportez la page web. Vous pouvez trouver une liste des changements surhttp://kdiff3.sourceforge.net/ChangeLog ou dans le fichier "ChangeLog" de la source.

Compilation et Installation
Pour compiler et installer KDiff3 sur un systme avec KDE, saisissez ce qui suit dans le dossier de base de votre dossier de KDiff3 :
% ./configure --prefix=dos-kde % make % make install

dos-kde spcifie le dossier contenant KDE sur votre systme. Si vous ne connaissez pas celui-ci, lisez le fichier README pour les dtails. tant donn que KDiff3 utilise autoconf et automake vous ne devriez pas avoir de problmes les compiler. Si vous rencontriez des problmes, veuillez les reporter aux listes de diffusion KDE.

36

Vous aimerez peut-être aussi