Comparer et fusionner des fichiers texte


Cette rubrique décrit comment utiliser la fenêtre de comparaison de fichiers WinMerge pour comparer et fusionner des fichiers texte. Pour comprendre les concepts de base sur les différences abordés ici, nous vous suggérons de lire d'abord Aperçu de la comparaison et de la fusion de fichiers. Consultez Comparer au format hexadécimal pour des informations connexes sur les fichiers hexadécimaux.

1. Démarrer une opération de comparaison de fichiers

Vous pouvez lancer une opération de comparaison de fichiers soit à partir de la fenêtre de WinMerge, soit à partir d'une fenêtre d'invite de commande.

Depuis la fenêtre WinMerge

Cliquez sur Fichier → Ouvrir.... Utilisez la boîte de dialogue « Sélectionner des fichiers ou dossiers » pour spécifier les fichiers sources de gauche et de droite à comparer. Pour plus de détails sur cette boîte de dialogue, consultez Ouvrir des fichiers et des dossiers.

Depuis une fenêtre d'invite de commande

Exécutez WinMergeU.exe, qui se trouve dans votre répertoire d'installation de WinMerge. Dans vos arguments de commande, incluez les fichiers de gauche et de droite à comparer. Pour plus d'informations sur l'utilisation de la ligne de commande, consultez Ligne de commande.

2. Fenêtre de comparaison de fichiers

La fenêtre de comparaison de fichiers affiche les fichiers comparés dans deux volets de fichiers, côte à côte. La barre d'outils et le menu contextuel de WinMerge fournissent des fonctions pour visualiser, naviguer et fusionner les différences. La capture d'écran ci-dessous montre une comparaison de deux versions d'un fichier.

Fenêtre de comparaison de fichiers

2.1. Volets de fichiers

Les volets de fichiers gauche et droit affichent le contenu textuel et les différences des deux fichiers comparés. Les volets de fichiers constituent la zone principale pour la navigation et la fusion des différences, et vous permettent également d'éditer le texte directement. Cette section décrit les fonctionnalités qui prennent en charge ces actions, ainsi que les façons dont vous pouvez personnaliser les volets de fichiers.

2.1.1. En-tête du volet de fichier

L'en-tête en haut de chaque volet de fichier indique le chemin complet du fichier source. Les noms des fichiers de gauche et de droite sont également identifiés dans l'en-tête de la fenêtre de comparaison, au-dessus des volets de fichiers.

L'un des volets de fichiers est toujours actif (indiqué par un fond d'en-tête foncé) ; l'autre est inactif et possède une barre d'en-tête plus claire. Vous ne pouvez éditer que dans le volet actif (comme décrit dans Fonctionnalités d'édition du volet Fichier). Cliquez d'un côté ou de l'autre pour le rendre actif et rendre l'autre côté inactif.

Un astérisque (*) devant le nom du fichier dans l'en-tête indique qu'il y a des modifications non enregistrées dans le fichier.

Le menu contextuel de la barre d'en-tête propose des raccourcis utiles pour copier et coller des informations sur les fichiers :

Copier le chemin complet

Copie le chemin complet du fichier source dans le presse-papiers du système.

Copier le nom du fichier

Copie uniquement le nom du fichier source dans le presse-papiers du système.

2.1.2. Coloration des différences

WinMerge met en évidence plusieurs types de différences dans les volets de fichiers. La page Couleurs de la boîte de dialogue Préférences définit un ensemble de couleurs d'arrière-plan et de texte pour la plupart des types de différences, avec des variantes indiquant leur état : non sélectionné, sélectionné ou supprimé. Cette section décrit comment chacun des types de différences de base est détecté et affiché.

Différence

Un bloc de différence contient une ou plusieurs lignes contiguës qui sont différentes. La couleur d'arrière-plan de la différence par défaut est or, mais les lignes vides sont marquées avec la couleur de suppression.

Pour cet écran et les autres de cette section, nous avons activé Afficher le numéro de ligne afin de montrer quelles lignes des fichiers sources sont comparées.

Couleurs d'arrière-plan des blocs de différences

Cette comparaison détecte trois blocs de différences :

  1. La première différence est une ligne unique.

  2. La ligne vide dans fichier2 n'a pas de ligne vide correspondante dans fichier1. WinMerge traite la ligne vide manquante comme une différence supprimée, marquée ici par la couleur grise par défaut.

  3. Le dernier bloc de différence comprend deux lignes.

Différence ignorée

Cette couleur marque le contenu que vous avez configuré WinMerge pour ignorer. Contrairement aux blocs de différence, le contenu ignoré n'est pas comparé, il est simplement mis en évidence pour vous aider à voir ce qui a été ignoré. Les différences ignorées incluent :

  • Les lignes vides, si vous avez activé Ignorer les lignes vides dans la page Comparer de la boîte de dialogue Préférences.

  • Les différences qui correspondent aux motifs des filtres de ligne que vous avez définis (consultez Utilisation des filtres pour savoir comment faire).

L'exemple suivant répète la comparaison précédente, cette fois avec l'option Ignorer les lignes vides activée. Il n'y a plus que deux différences. La ligne vide sur le côté droit est marquée avec la couleur des différences ignorées.

Couleurs de blocs de différences avec une diff ignorée

Déplacé

Les différences déplacées sont des lignes identiques trouvées à des emplacements différents dans les fichiers comparés, si l'option Activer la détection des blocs déplacés est activée dans la page Comparer de la boîte de dialogue Préférences. La capture d'écran suivante répète la comparaison précédente, cette fois avec la détection de blocs déplacés activée.

Couleurs de blocs de différences avec la détection de blocs déplacés

Remarquez que les deux lignes identiques (contenant a et c) qui se trouvent à des emplacements différents sont marquées avec la couleur Déplacé orange par défaut. Un autre effet de la détection de blocs déplacés dans ce cas est que les deux dernières lignes sont maintenant deux différences distinctes au lieu d'un seul bloc de différence.

Dans certains cas, l'affichage des différences déplacées peut faciliter la visualisation des changements dans les fichiers. Cependant, un trop grand nombre de lignes déplacées peut rendre votre comparaison difficile à parcourir. Faites preuve de discernement !

Différence de mot

WinMerge peut marquer le texte modifié avec des blocs de différences. Les différences de ligne sont marquées avec la couleur de différence de mot. Voir Mise en évidence des différences de ligne pour plus de détails.

Lignes similaires

WinMerge essaie d'aligner les lignes similaires à l'intérieur des blocs de différences lorsque vous activez l'option Aligner les lignes similaires dans la page Comparer de la boîte de dialogue Préférences. Que signifie “similaires” ? En général, cette fonctionnalité fonctionne mieux dans les cas simples, par exemple pour des lignes présentant de fortes similitudes. Lorsqu'elles sont détectées, les lignes similaires sont ajustées pour être alignées dans le volet Fichier. La figure suivante montre des comparaisons des deux mêmes fichiers, avant et après l'activation de l'option Aligner les lignes similaires :

Désactivé : Comparaison sans correspondance des lignes similaires Activé : Comparaison avec correspondance des lignes similaires

Dans la seconde comparaison, les lignes “mice” et “mice and a” sont détectées comme similaires. WinMerge ajoute des lignes vides dans l'affichage pour faire apparaître ces lignes au même niveau à l'intérieur du bloc de différence.

2.1.3. Mise en évidence des différences de ligne

Il est parfois utile de mettre en évidence non seulement les blocs de différences, mais aussi le texte modifié à l'intérieur de ceux-ci. Vous pouvez les activer ou les désactiver de deux manières :

  • Définissez toutes les options Afficher les différences de ligne dans la page Éditeur de la boîte de dialogue Préférences.

  • Cliquez sur Affichage → Afficher les différences de ligne pour activer ou désactiver les différences de ligne.

Note

Rappelez-vous que les fonctions de navigation et de fusion de WinMerge (comme Différence suivante ou Copier vers la gauche) travaillent sur des blocs de différences, et non sur les différences de ligne à l'intérieur de ceux-ci.

Cette section décrit comment les différences de ligne sont détectées et marquées. Notez que l'effet de ces options est également influencé par vos paramètres d'espacement actuels dans la page Comparer de la boîte de dialogue Préférences.

Différences de ligne au niveau des mots

Les exemples suivants montrent comment les différences de ligne au niveau des mots sont affichées avec chacun des paramètres de caractères d'espacement :

Example 1. Différences de ligne avec Caractères d'espacement : Comparer

WinMerge détecte tous les mots et espaces différents :

Différence de ligne au niveau du mot comparant les espaces

Example 2. Différences de ligne avec Caractères d'espacement : Ignorer les changements

Les espaces multiples et les tabulations sont traités de la même manière qu'un espace simple. Dans l'exemple, l'espace supplémentaire entre les deux derniers mots n'est pas marqué :

Différence de ligne au niveau du mot ne comparant pas les changements d'espacement

Example 3. Différences de ligne avec Caractères d'espacement : Ignorer tout

Aucun espace entre les mots n'est comparé, ces lignes sont donc traitées comme identiques :

Différence de ligne au niveau du mot ne comparant pas les espaces

Différences de ligne au niveau des caractères

Une différence de ligne au niveau des caractères inclut le premier et le dernier caractère différent dans un mot, ainsi que tous les caractères entre eux. Une seule différence au niveau des caractères peut s'étendre sur des mots adjacents. L'exemple suivant illustre ce point :

Différence de ligne au niveau du caractère ne comparant pas les espaces

Note

Comme pour les différences de ligne au niveau des mots, la mise en évidence des caractères varie selon la configuration de WinMerge pour détecter les coupures de mots. Dans l'exemple, l'espace supplémentaire après le mot cure dans fichier2 n'est mis en évidence que si les espaces sont comparés.

Coupures pour mots ou caractères

Les mots et les caractères dans les différences de ligne peuvent être séparés par des espaces, ou par une combinaison d'espaces et de ponctuation. Les espaces (par défaut) sont le choix typique pour comparer la plupart des fichiers texte. Tous les exemples de différences de ligne précédents utilisent les espaces pour séparer les mots et les caractères.

Dans certains cas, il est utile de couper à la ponctuation. Par exemple, la capture d'écran suivante compare une liste séparée par des virgules. Pour mettre en évidence les différences de ligne significatives, nous avons activé l'option Coupure à l'espacement ou à la ponctuation dans la page Éditeur de la boîte de dialogue Préférences.

Différence de ligne au niveau du caractère ne comparant pas les espaces

2.1.4. Fonctionnalités d'édition du volet Fichier

Bien que WinMerge ne soit pas un éditeur complet ou un IDE, il fournit des fonctions d'édition de base, comme Annuler et Rétablir, Rechercher et Remplacer, et Atteindre. Ces tâches d'édition de base sont souvent nécessaires lors de la fusion (par exemple, pour modifier le texte à l'intérieur des différences). Vous pouvez éditer dans le volet Fichier actif (n'oubliez pas, cliquez dans un volet pour le rendre actif). Les modifications ne sont pas écrites dans un fichier tant que vous n'avez pas enregistré un volet dans un fichier résultat.

Les fonctionnalités d'édition de WinMerge incluent également la surbrillance syntaxique. Cette fonctionnalité optionnelle prend en charge plusieurs formats de fichiers, et vous pouvez configurer les couleurs utilisées. Notez que la surbrillance syntaxique n'est pas appliquée à l'intérieur des différences, comme le montre la capture d'écran précédente.

Tip

Assurez-vous que l'option Actualiser automatiquement est activée, comme décrit dans Réanalyse des fichiers. Si ce n'est pas le cas, actualisez manuellement votre vue (appuyez sur F5) avant et après l'édition d'un fichier, pour vous assurer que la détection des différences de WinMerge est à jour.

2.1.5. Polices du volet Fichier

Vous pouvez choisir les polices pour le volet Fichier en cliquant sur Affichage → Choisir une police.... WinMerge ne prend en charge que les polices à espacement fixe.

Voici des suggestions de polices pour utiliser WinMerge avec les langues d'Asie de l'Est :

  • Chinois simplifié : polices à espacement fixe SimSun ou SimHei
  • Chinois traditionnel : police à espacement fixe MingLiU
  • Japonais : polices à espacement fixe MS Gothic ou MS Mincho
  • Coréen : police à espacement fixe GulimChe (pas Gulim, car cette variante utilise des glyphes à espacement proportionnel qui ne sont pas centrés dans les cellules de la grille et mal alignés en mode espacement fixe).

2.1.6. Marges du volet Fichier

Les volets de fichiers disposent de marges grises optionnelles qui affichent les numéros de ligne et certains symboles. Pour afficher ou masquer les marges, cliquez sur Affichage → Afficher les marges. Si vous utilisez plusieurs fenêtres de comparaison de fichiers, vous pouvez contrôler les marges de chaque fenêtre indépendamment. La marge peut afficher l'une ou l'ensemble de ces fonctionnalités :

  • Numéros de ligne, si Affichage → Afficher le numéro de ligne est activé.

  • Signets, si Édition → Signets est activé. Un signet est un cercle bleu dans la marge à côté d'une ligne, que WinMerge peut mémoriser pour y revenir.

    • Pour définir un signet sur une ligne, double-cliquez dans sa marge (ou appuyez sur Ctrl+F2). La même action supprime un signet existant.

    • Pour naviguer entre les signets, cliquez sur Édition → Signets et choisissez Signet suivant ou Signet précédent.

    • Double-cliquez sur un signet individuel pour le supprimer (ou appuyez sur Ctrl+F2).

    • Cliquez sur Édition → Signets → Effacer tous les signets pour supprimer tous les signets.

  • Symboles fléchés de retour à la ligne automatique, si Affichage → Retour à la ligne automatique est activé.

La capture d'écran suivante montre une marge avec les signets et le retour à la ligne automatique activés. Sans numéros de ligne, la largeur de la marge est minimale.

Marge de la fenêtre de comparaison avec signet et retour à la ligne

La capture d'écran suivante montre une marge avec les signets et les numéros de ligne activés. Notez que la marge est plus large. En fait, la marge est assez large pour le plus grand numéro de ligne. Ainsi, les marges pour les fichiers volumineux avec de nombreuses lignes peuvent être assez larges.

Marge de la fenêtre de comparaison avec signet et numéros de ligne

2.2. Barre d'outils et menus

La barre d'outils et les menus de WinMerge offrent une gamme de fonctions pour naviguer, sélectionner et fusionner les différences à l'intérieur des fichiers.

Note

Les raccourcis WinMerge portent les mêmes noms et boutons, que vous ouvriez une fenêtre de comparaison de dossiers ou de fichiers. Cependant, les fonctions se comportent différemment : avec une fenêtre de comparaison de fichiers, les fonctions agissent sur les différences à l'intérieur des fichiers, et non sur les différences à l'intérieur des dossiers.

Les fonctions de différence que vous pouvez utiliser dépendent de votre contexte, qui change souvent au fur et à mesure de votre travail. Cela signifie qu'une fonction n'est disponible que lorsque son opération est possible pour un emplacement donné ou une autre condition de votre environnement WinMerge. Par exemple, si vous cliquez dans une ligne de texte à l'intérieur d'une différence, vous remarquerez peut-être que plusieurs boutons de navigation et de fusion s'activent dans la barre d'outils. Si vous cliquez dans une autre zone de texte qui n'est pas à l'intérieur d'une différence, ces fonctions deviennent indisponibles.

Les fonctions de différence sont disponibles dans la barre d'outils WinMerge, ainsi que par ces autres mécanismes :

  • Menus WinMerge, en particulier Fusionner

  • Menus contextuels dans la fenêtre de comparaison de fichiers (lorsque vous faites un clic droit sur le texte)

  • Raccourcis clavier

Les fonctions de différence sont décrites dans Navigation dans les différences et Fusion des différences, plus loin dans cette rubrique. Démarrage rapide et Aperçu de la comparaison et de la fusion de fichiers fournissent des exemples de comparaison et de fusion.

2.2.1. Mode Fusion

Fichier → Mode fusion (ou appuyez sur F9) restaure ces raccourcis clavier simples de WinMerge 1.7.1 pour les fonctions de navigation et de fusion des différences :

  • Touches Haut et Bas pour les fonctions Différence précédente et Différence suivante.

  • Touches Gauche et Droite pour les fonctions Copier vers la gauche et Copier vers la droite.

Le mode Fusion supprime la touche Alt pour ces opérations courantes (les rendant plus rapides à utiliser que le mode normal). Notez que les combinaisons de touches Maj et Alt + Flèche fonctionnent en mode fusion de la même manière qu'en mode normal.

Le mode Fusion est indiqué dans la barre d'état par le texte Fusion.

2.3. Merge Result pane

When you compare three text files and specify a merge output path (for example, when a version control tool starts WinMerge with the /o command-line option), the Merge Result pane opens at the bottom of the File Compare window. It works like the merge output window in KDiff3: the three File panes show the compared files read-only, and the Merge Result pane contains the merge result, which you can edit freely. This requires the Merge Result pane option to be enabled in the Compare/Merge page of the Options dialog.

When you open a two-way conflict file with File → Open Conflict File, WinMerge keeps the two source panes side by side and opens the Merge Result pane when it is enabled. Each differing block starts unresolved because a two-way conflict file has no common base. Choose the left or right source to resolve a block. In this mode the toolbar buttons are numbered 1 and 2, and Ctrl+Shift+1 and Ctrl+Shift+2 choose the left and right source, respectively. Unresolved blocks are saved using the standard two-sided conflict markers.

When the pane opens, every difference initially starts unresolved, shown as a compact <Merge Conflict> or <Unresolved Difference> placeholder line. If an automatic merge is requested — with the /al, /am or /ar command-line option, or with the Auto Merge command — non-conflicting differences are resolved automatically according to the selected merge target, and only true conflicts, where both sides changed the same lines relative to the base, remain unresolved.

To resolve a difference, select it and choose the desired source from the top-level Merge Result menu. Two-way merge sessions offer Choose Left and Choose Right; three-way sessions also offer Choose Middle. You can also use the Merge Result pane context menu, or the 1 / 2 / 3 toolbar buttons. Each command toggles that pane's lines for the current difference (or all differences covered by the current selection): selecting several panes combines their lines in the order you select them (useful when both sides added something and the merge should keep both), and deselecting all panes makes the difference unresolved again. You can also type corrections directly into the Merge Result pane, except on unresolved differences: those must be resolved with a Choose command before their text can be edited. Conflicts whose sides differ only in white space are marked as (Whitespace only).

The pane's margin shows where every line came from: 1, 2 or 3 for a line taken from the left, middle or right pane (matching the toolbar buttons), ? for an unresolved conflict section, and m for a difference modified by hand. The pane's status bar shows how many differences are still unresolved. While the pane is open, Next Conflict and Previous Conflict (Alt+Shift+Down / Alt+Shift+Up) jump to the next or previous difference that still needs a decision, skipping the ones already resolved.

Use File → Save → Save Merge Result, the Save toolbar button, or Ctrl+S to save the result to the output path. WinMerge warns if unresolved differences remain. Unresolved conflicts are saved as standard conflict sections — never as placeholder text — so the file keeps all versions of the disputed lines and can be finished later in any editor or merge tool; unresolved non-conflicting differences are saved with their automatic merge content, keeping the output free of conflict markers that no version control system would produce. Reopening the output path itself does not resume from these conflict sections: WinMerge always rebuilds the merge result from the three compared files, so a version control tool that starts WinMerge again with the /o command-line option (for example git mergetool) gets a fresh merge every time, regardless of what the output file already contains. To pick up an earlier, partially resolved conflict file instead, use File → Open Conflict File : WinMerge parses its conflict sections and restores them as unresolved differences, keeping any text that was already resolved. WinMerge also prompts about an unsaved merge result when the window is closed — also when the pane itself has been hidden in the meantime. By default every line is saved with its own original line ending, so the output differs from the sources as little as possible (for example, producing minimal diffs in version control); you can change the output line endings to Windows, Unix, or classic Mac style from the Merge Result pane's status bar. The encoding follows the side that changed it, and the save honors the backup-file option and any file packer plugin the files were opened with.

You can also start a merge in any three-way text comparison with Merge → Start Merge Session (differences start unresolved) or Merge → Auto Merge (non-conflicting differences are resolved automatically). While a merge session is active, you can show and hide the pane with View → Merge Result Pane . To end the merge session and restore the normal editable three-pane behavior, choose Merge → End Merge Session. WinMerge prompts to save if the merge result has unsaved changes, and restores the panes' original read-only states and headers.

The base pane (common ancestor) for automatic merge resolution is determined by either command-line options or the keyboard focus:

When using command-line options:

  • Merge to left pane (/al): left = merge target, middle = theirs, right = base

  • Merge to middle pane (/am): left = theirs, middle = merge target, right = mine

  • Merge to right pane (/ar): left = base, middle = theirs, right = merge target

When using UI-based merge operations (Start Merge Session or Auto Merge): The base pane is determined by the current keyboard focus:

  • Left pane focused: left = mine, middle = theirs, right = base

  • Middle pane focused: left = theirs, middle = base, right = mine

  • Right pane focused: left = base, middle = theirs, right = mine

2.4. Volet Emplacement

Le volet de localisation, à gauche des volets Fichier, projette toute la longueur des fichiers comparés sur deux barres verticales (correspondant aux volets Fichier gauche et droit). Il est particulièrement utile pour travailler avec des fichiers trop longs pour être facilement parcourus dans les volets Fichier.

Le volet de localisation affiche plusieurs types d'éléments :

Lignes de diff du volet de localisation Blocs de différences

Chaque bloc de différence dans les volets Fichier est indiqué dans le volet de localisation par une ligne horizontale traversant chaque barre verticale. L'épaisseur, la couleur et l'emplacement de ces lignes sont des indices sur la taille (nombre de lignes), le type et la répartition de toutes les différences dans les fichiers. Par exemple, la couleur d'une ligne est la même que celle du bloc de différence correspondant. Le volet de localisation de la capture d'écran précédente montre de nombreuses différences de base (or) et quelques blocs de différences vides (gris).

Pointeur de diff courante du volet de localisation Différence courante

Si vous avez sélectionné une différence, le volet de localisation marque la ligne de la différence courante par une paire de petits triangles de chaque côté des barres verticales. Si vous naviguez vers une autre différence, le pointeur se déplace vers le haut ou vers le bas avec l'emplacement. Le fait que vous fassiez défiler le volet Fichier ne change pas l'emplacement du pointeur de différence (ni aucune des lignes de différence) dans le volet de localisation.

Barre de zone de visualisation du volet de localisation Zone de visualisation

La zone des fichiers actuellement visible dans les volets Fichier est indiquée par une barre de visualisation ombrée (translucide) sur le volet de localisation. La hauteur et l'emplacement de cette barre correspondent à la portion des fichiers visible dans la zone de défilement. Par exemple, vous pourriez voir la barre s'agrandir ou rétrécir si vous changez la hauteur de vos volets Fichier. Cette synchronisation entre la barre de visualisation du volet de localisation et les volets Fichier permet une navigation rapide et certaines actions utiles :

  • Lorsque vous faites défiler les volets Fichier, la zone de visualisation dans le volet de localisation se déplace avec eux.

  • Inversement, vous pouvez faire glisser la barre de la zone de visualisation dans le volet de localisation vers le haut ou vers le bas pour faire défiler les volets Fichier. Cette action sur le curseur de défilement est très pratique pour naviguer dans des fichiers longs.

  • Cliquez n'importe où dans le volet de localisation pour sauter à l'emplacement correspondant dans les volets Fichier.

Différences déplacées

Les différences déplacées sont des lignes identiques situées à des emplacements différents. Elles ne sont affichées que si l'option Activer la détection des blocs déplacés est cochée dans la page Comparer de la boîte de dialogue Préférences. Voir Coloration des différences pour plus de détails sur les différences déplacées dans le volet Fichier. Le volet de localisation trace une ligne reliant les différences déplacées dans les barres d'emplacement de gauche et de droite. Par exemple :

Volet de localisation avec diff déplacée

Le menu contextuel du volet de localisation contient ces raccourcis :

  • Atteindre la ligne 1 : déplace le curseur au début du fichier.

  • Atteindre... : déplace le curseur vers une ligne que vous spécifiez (décrit dans Fonctions de navigation).

  • Aucun blocs déplacés : désactive la couleur des différences de déplacement pour les blocs déplacés.

  • Tous les blocs déplacés : active la couleur des différences de déplacement pour tous les blocs déplacés.

  • Bloc déplacé pour la diff actuelle : active la couleur des différences de déplacement uniquement pour la différence déplacée actuellement sélectionnée.

2.5. Volet des différences

Le volet des différences affiche le contenu des deux côtés d'une différence sélectionnée.

Lorsque vous sélectionnez une différence, les deux versions sont chargées dans les parties supérieure et inférieure du volet des différences. De cette façon, le volet des différences confirme quelles lignes sont incluses dans une différence et vous permet de les examiner isolément du reste du fichier.

Vous pouvez fusionner les différences directement dans le volet des différences en faisant un clic droit soit sur la partie supérieure soit sur la partie inférieure et en choisissant Copier vers la Droite ou Copier vers la Gauche.

2.6. Barres d'état

Chaque volet Fichier contient une barre d'état au bas. La barre d'état comprend plusieurs zones avec différents types d'informations sur le document et votre emplacement dans celui-ci :

État de la ligne
  • Ln : Numéro de ligne dans le fichier source.

  • Col : Emplacement de la colonne du curseur et nombre total de colonnes dans la ligne.

    Col compte les tabulations comme n espaces, où n est le nombre de caractères défini comme Taille des tabulations dans la page Éditeur des Préférences de WinMerge (4 par défaut).

  • Ch : Emplacement du caractère du curseur et nombre total de caractères dans la ligne.

    Ch compte les tabulations comme un seul caractère de tabulation.

  • EOL : Style de fin de ligne de la ligne actuelle (affiché uniquement lorsque l'option Préserver les EOL d'origine est activée dans la page Éditeur des Préférences de WinMerge).

État de lecture seule

LS s'affiche dans la zone si le fichier est défini en lecture seule (comme décrit dans Protection des fichiers). Sinon, la zone est vide.

Encodage du fichier

Numéro de page de code pour les fichiers ANSI, type d'encodage Unicode pour les fichiers Unicode.

Style de fin de ligne (EOL)

Style EOL du fichier : Win pour les fichiers Windows/DOS (CRLF), Unix (LF), Mac (CR), ou Combiné.

Note

Lorsque le style EOL par ligne est utilisé, le style EOL global du fichier n'est pas affiché (cette zone est vide).

Lorsqu'une fenêtre de comparaison de fichiers est ouverte, la barre d'état de la fenêtre WinMerge affiche l'un de ces messages concernant les fichiers comparés :

  • Identique : les fichiers ne contiennent aucune différence

  • n différences trouvées : le nombre de différences détectées, affiché uniquement lorsqu'aucune différence n'est sélectionnée.

  • Différence x de n : le numéro de séquence de la différence sélectionnée par rapport au nombre total de différences, en commençant par 1.

3. Navigation dans les différences

Cette section décrit comment naviguer et sélectionner des différences dans la fenêtre de comparaison de fichiers. Notez que lorsque vous sélectionnez une différence, elle est toujours sélectionnée dans les deux ou les trois volets Fichier.

Tip

Pour gagner du temps, activez Atteindre automatiquement la première différence dans la page Général des Préférences de WinMerge. Ainsi, vous n'aurez pas besoin de naviguer manuellement vers la première différence pour la sélectionner.

3.1. Fonctions de navigation

Voici les fonctions de navigation dans les différences de la fenêtre de comparaison de fichiers, ainsi que leurs raccourcis dans la barre d'outils et les menus :

Différence suivante sur la ligne courante/Sélectionner la différence suivante

Activé si vous avez cliqué (ou sélectionné) du texte à l'intérieur d'une différence dans un volet Fichier. Sélectionne les différences de mots dans la ligne. Par exemple :

Exemple de Sélectionner la différence suivante

Si vous souhaitez sélectionner le bloc de différence lui-même, utilisez plutôt Différence courante.

Raccourcis : bouton Bouton Différence suivante sur la ligne courante, Édition → Sélectionner la différence suivante, F4, menu contextuel dans le volet Fichier à l'intérieur d'une différence.

Différence suivante

Sélectionne la différence suivante en dessous de l'emplacement actuel de votre curseur dans le document (pas nécessairement par rapport à la différence courante). Utilisez cette fonction pour parcourir les différences de manière séquentielle à partir de n'importe quel point. Disponible sauf si la dernière différence est actuellement sélectionnée.

Raccourcis : bouton Bouton Différence suivante, Fusionner → Différence suivante, Alt+Bas (ou Bas en mode fusion).

Différence précédente

Sélectionne la différence précédente au-dessus de l'emplacement actuel de votre curseur (pas nécessairement par rapport à la différence actuelle). Utilisez cette fonction pour revenir séquentiellement en arrière à travers les différences. Disponible sauf si la première différence est actuellement sélectionnée.

Raccourcis : bouton Bouton Différence précédente, Fusionner → Différence précédente, Alt+Haut (ou Haut en mode fusion).

Première différence

Utilisez cette option pour commencer à comparer ou à fusionner les différences, ou pour localiser la première différence à partir de n'importe quel autre endroit. Disponible sauf si la première différence est actuellement sélectionnée. Vous pouvez également sélectionner une différence en double-cliquant sur son texte.

Raccourcis : bouton Bouton Première différence, Fusionner → Première différence, Alt+Début.

Différence courante

Cette fonction a deux modes d'action :

  • Si votre curseur se trouve à l'intérieur d'une différence mais qu'aucune différence n'est sélectionnée, cette fonction sélectionne l'intégralité de la différence. C'est un moyen très pratique de sélectionner une différence à l'aide du clavier.
  • Lorsqu'il y a une différence courante, la fonction saute à cet emplacement. C'est pratique si vous avez fait défiler la différence sélectionnée hors de la vue et que vous souhaitez revenir rapidement à son emplacement.

Raccourcis : bouton Bouton Différence courante, Fusionner → Différence courante, Alt+Entrée.

Dernière différence

Activé sauf si la dernière différence est actuellement sélectionnée.

Raccourcis : bouton Bouton Dernière différence, Fusionner → Dernière différence, Alt+Fin.

Atteindre

Vous permet de sauter soit vers un numéro de ligne, soit vers un numéro de différence (par exemple, la différence 2 est la deuxième différence). Ouvre la boîte de dialogue Atteindre, où vous spécifiez le numéro, le fichier à utiliser (gauche ou droit) et le type d'emplacement (ligne ou différence).

Tip

L'option Atteindre le numéro de ligne peut être utile lorsque vous devez fusionner la même modification d'un fichier vers plusieurs fichiers cibles. Sauter à une différence particulière peut être plus rapide que d'utiliser Rechercher pour chercher du texte, ou de parcourir les différences une par une.

Raccourcis : Édition → Atteindre..., Ctrl+G, menu contextuel dans le volet Fichier et le volet de localisation.

Aller à la ligne déplacée

Permet de sauter vers l'origine/la destination du déplacement de la diff actuelle sur l'autre panneau (2 volets).

Raccourcis : Ctrl+Maj+G, menu contextuel dans le volet Fichier et le volet des différences.

Aller à la ligne déplacée entre la Gauche et le Milieu

Permet de sauter vers l'origine/la destination du déplacement de la diff actuelle sur l'autre panneau (3 volets).

Raccourcis : Ctrl+Maj+G, menu contextuel dans le volet Fichier et le volet des différences.

Aller à la ligne déplacée entre le Milieu et la Droite

Permet de sauter vers l'origine/la destination du déplacement de la diff actuelle sur l'autre panneau (3 volets).

Raccourcis : Ctrl+Alt+G, menu contextuel dans le volet Fichier et le volet des différences.

Actualiser

Voir Fonctions de fusion.

4. Points de synchronisation

À déterminer

5. Fusion des différences

La fusion copie les différences d'un volet Fichier vers l'autre : soit de gauche vers la droite, soit de droite vers la gauche. Cela est différent de l'édition directe de texte à l'aide des fonctions d'édition de WinMerge (décrites plus haut dans cette rubrique).

5.1. Réanalyse des fichiers

Par défaut, l'option Actualiser automatiquement est activée dans la page Éditeur des Préférences de WinMerge. La réanalyse maintient vos opérations de comparaison et de fusion à jour. Sans réanalyse, WinMerge ne détecte pas les changements qui pourraient survenir dans les fichiers pendant que vous les comparez, par exemple dans un éditeur externe.

La réanalyse se produit lorsque vous effectuez certaines actions (comme fusionner une différence ou éditer un fichier) pendant une comparaison de fichiers. Si un fichier a été modifié, WinMerge affiche une boîte de dialogue vous avertissant qu'une autre application a mis à jour le fichier et vous demande si vous souhaitez recharger le fichier.

Cliquez sur Oui pour recharger le fichier avant de continuer, ou sur Non pour ignorer les changements et travailler avec la version du fichier chargée précédemment.

Important

Si l'option Actualiser automatiquement est désactivée, ou si vous soupçonnez qu'un fichier a pu changer, nous vous conseillons vivement d'exécuter Actualiser avant toute opération de fusion : cliquez sur Affichage → Actualiser ou sur le bouton Bouton Actualiser de la barre d'outils, ou appuyez sur F5.

Si le résultat d'une fusion semble incorrect, cliquez sur Édition → Annuler ou appuyez sur Ctrl+Z pour annuler la fusion. Ensuite, réanalysez les fichiers et tentez à nouveau la fusion.

5.2. Fonctions de fusion

Les fonctions de fusion peuvent sélectionner implicitement des différences en fonction de l'emplacement du curseur ou d'une sélection de texte. Par exemple, si vous cliquez n'importe où dans une différence puis cliquez sur le bouton Copier vers la droite de la barre d'outils, tout le bloc de différence est fusionné. Cela facilite la fusion de nombreuses petites différences. De même, si vous sélectionnez du texte s'étendant sur tout ou partie de plusieurs différences, toutes les différences incluses sont fusionnées par une seule commande de fusion.

Si le résultat d'une opération de fusion n'est pas celui attendu, vous pouvez cliquer sur Annuler pour inverser l'opération.

Voici les fonctions de fusion et leurs raccourcis dans la barre d'outils et les menus :

Copier vers la droite

Copie une ou plusieurs différences de gauche vers la droite. Notez que les différences n'ont pas besoin d'être entièrement sélectionnées : au plus simple, cela signifie remplacer le texte de la différence cible par le texte de la différence source. Mais comme les différences peuvent aussi contenir des lignes vides, de nouvelles lignes peuvent être créées ou supprimées.

Raccourcis : bouton Bouton Copier vers la droite, Fusionner → Copier vers la Droite, Alt+Droite (ou Droite en mode fusion), menu contextuel dans le volet Fichier à l'intérieur d'une différence, et dans le volet des différences.

Copier vers la gauche

Copie la différence courante du volet Fichier droit vers le volet gauche. Voir la description de Copier vers la droite pour plus de détails.

Raccourcis : bouton Bouton Copier vers la gauche, Fusionner → Copier vers la Gauche, Alt+Gauche (ou Gauche en mode fusion), menu contextuel dans le volet Fichier à l'intérieur d'une différence, et dans le volet des différences.

Copier vers la droite et avancer

Fusionne la différence courante du volet Fichier droit vers le volet gauche, puis sélectionne la différence suivante (si elle existe). Équivaut à Copier vers la droite et Différence suivante en une seule étape.

Raccourcis : bouton Bouton Copier vers la droite et avancer, Fusionner → Copier vers la Gauche, Ctrl+Alt+Droite, menu contextuel dans le volet Fichier à l'intérieur d'une différence.

Copier vers la gauche et avancer

Fusionne la différence courante de gauche vers la droite, puis sélectionne la différence suivante (si elle existe). Équivaut à Copier vers la gauche et Différence suivante en une seule étape.

Raccourcis : bouton Bouton Copier vers la gauche et avancer, Fusionner → Copier vers la Gauche, Ctrl+Alt+Gauche, menu contextuel dans le volet Fichier à l'intérieur d'une différence.

Tout copier vers la droite

Copie toutes les différences du volet Fichier gauche vers le volet droit. Utilisez cette fonction pour synchroniser deux fichiers en une seule commande. De même, vous pouvez annuler toute la fusion en cliquant sur Bouton Actualiser Annuler ou en appuyant sur Ctrl+Z.

Raccourcis : bouton Bouton Tout copier vers la droite, Fusionner → Copier vers la Gauche, Alt+Gauche, menu contextuel dans le volet Fichier à l'intérieur d'une différence.

Tout copier vers la gauche

Copie toutes les différences du volet Fichier droit vers le volet gauche. Remplace effectivement le contenu du volet gauche. Voir la fonction similaire Tout copier vers la droite.

Raccourcis : bouton Bouton Tout copier vers la gauche, Fusionner → Copier vers la Gauche, Alt+Gauche, menu contextuel dans le volet Fichier à l'intérieur d'une différence.

Actualiser

Réanalyse les fichiers pour mettre à jour les différences. À utiliser après avoir apporté des modifications aux fichiers si l'analyse automatique est désactivée (voir Réanalyse des fichiers pour plus de détails).

Raccourcis : bouton Bouton Actualiser, Affichage → Actualiser, F5.

5.3. Résolution de fichiers de conflit

Vous pouvez utiliser WinMerge pour résoudre les fichiers de conflit que certains systèmes de contrôle de version produisent lors de leurs opérations de fusion. Un fichier de conflit est créé lorsqu'une fusion rencontre des différences qui ne peuvent pas être résolues automatiquement. Il s'agit d'un fichier unique contenant le contenu incomplètement fusionné des deux fichiers. WinMerge sépare le fichier de conflit en fichiers distincts et ouvre ces fichiers dans la fenêtre de comparaison de fichiers. Vous pouvez ensuite utiliser les fonctions de comparaison et de fusion de WinMerge pour résoudre les conflits et enregistrer le fichier résultat fusionné.

  1. Cliquez sur Fichier → Ouvrir le fichier en conflit..., et utilisez la boîte de dialogue Ouvrir pour sélectionner le fichier de conflit dans votre système de fichiers. Le fichier de conflit s'ouvre dans la fenêtre de comparaison de fichiers :

    • L'en-tête du fichier dans le volet gauche s'intitule Leurs fichiers. Ce côté représente le fichier qui se trouve généralement dans le dépôt du système de contrôle de version. Ce fichier ne peut généralement pas être édité, c'est pourquoi WinMerge définit le volet gauche en lecture seule. Cela signifie que les différences ne peuvent être fusionnées que de ce fichier vers l'autre.

    • Le volet droit s'intitule Mes fichiers. Ce côté est la copie de travail du fichier. Toutes les modifications doivent être effectuées dans ce fichier, qui est le fichier résultat.

      Le côté Mes fichiers est marqué comme modifié après l'ouverture du fichier de conflit (vous remarquerez l'astérisque dans l'en-tête du volet). Cela vous permet d'enregistrer le fichier rapidement s'il ne nécessite aucune modification. Cela garantit également que vous n'oubliez pas de résoudre les fichiers. Si vous choisissez de ne pas enregistrer le fichier, le fichier de conflit d'origine n'est pas modifié.

  2. Utilisez toutes les fonctions normales de comparaison et de fusion décrites plus haut dans cette rubrique pour résoudre les conflits dans le volet Mes fichiers.

  3. Lorsque vous avez terminé, cliquez sur Ctrl+S pour enregistrer le côté Mes fichiers en tant que fichier résultat. Par défaut, la nouvelle version écrase le fichier de conflit d'origine. Alternativement, vous pouvez cliquer sur Fichier → Enregistrer Droite → Enregistrer sous, et choisir un nom de fichier différent.

De nombreux systèmes de contrôle de version vous permettent de configurer un outil de fusion externe. Si c'est le cas du vôtre, vous pourrez peut-être faire en sorte que votre système de contrôle de version lance WinMerge automatiquement lorsqu'un conflit de fusion survient.

Vous pouvez également ouvrir un fichier de conflit à partir de la ligne de commande WinMerge, qui accepte trois paramètres de nom de fichier : Theirs, Mine, et facultativement Resolved (si vous voulez un fichier résultat différent du fichier de conflit). Pour plus d'informations, voir Ligne de commande. Un chemin unique vers le fichier de conflit est également accepté en ligne de commande.