Académique Documents
Professionnel Documents
Culture Documents
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 ...
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.
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.
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. ...
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
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.
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.
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.
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.
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.
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.
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).
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
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/
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
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
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.
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.
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.
21
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/
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
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", ...
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
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.
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).
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.
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.
31
dossiers est dmarre. Mais notez que linformation de ltat sera perdue lorsque vous relancerez un scan de dossier via : "Dossier"/"Rescanner"
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
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.
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.
35
Annexe A. Installation
Table des matires Comment obtenir KDiff3 Configuration minimale Compilation et Installation
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