Utiliser WinMerge avec d'autres outils


La comparaison et la fusion de fichiers sont souvent des sous-tâches d'un processus de gestion de changement plus large. Pour cette raison, WinMerge est souvent utilisé conjointement avec d'autres outils. De plus, les utilitaires de diff et de fusion offrant des fonctionnalités différentes, il est parfois pratique de les combiner. Ce chapitre décrit les principales méthodes pour utiliser WinMerge avec d'autres outils.

1. Utiliser l'interface en ligne de commande (CLI)

L'interface en ligne de commande (CLI) de WinMerge, décrite dans Ligne de commande, vous permet d'exécuter WinMerge depuis une invite de commandes, des scripts ou un autre programme. En résumé, tout programme permettant d'appeler un exécutable externe avec au moins un chemin peut lancer WinMerge.

En voici quelques exemples :

  • Un fichier batch peut lancer WinMerge et permettre aux utilisateurs de spécifier des paramètres de manière interactive :

    start "WinMerge" /B "C:\Program Files\WinMerge\WinMergeU.exe" /e /s /u /dl %3 /dr %5 %6 %7

  • Le client Subversion vous permet d'appeler un programme de diff externe et de lui passer des paramètres, comme ceci :

    $ svn diff --diff-cmd "C:\Program Files\WinMerge\WinMergeU.exe" -x "-dl -dr" monfichier 

Tip

De même, de nombreux outils graphiques (clients de gestion de version, IDE) permettent de configurer WinMerge comme outil de diff par défaut. La section suivante décrit comment faire avec TortoiseSVN et Visual Studio Team Foundation Server. Pour d'autres outils comme Eclipse ou Perforce, consultez leur documentation.

2. Utiliser WinMerge avec des systèmes de gestion de versions

Vous pouvez configurer WinMerge pour interagir avec certains systèmes de gestion de versions (VCS). Cette section décrit cette intégration.

2.1. Utiliser WinMerge comme outil de diff d'un système de gestion de versions

Lorsque vous comparez des fichiers dans TortoiseCVS, TortoiseSVN ou TortoiseGit, vous pouvez demander au VCS de lancer WinMerge. Certaines intégrations peuvent être configurées lors de l'installation de WinMerge.

Example 1. Intégration TortoiseSVN

Voici un exemple d'opération de diff dans TortoiseSVN utilisant WinMerge. L'intégration est similaire pour TortoiseCVS et TortoiseGit.

  1. Dans l'Explorateur Windows, naviguez vers une copie de travail Subversion que vous avez extraite (checked out).

  2. Faites un clic droit sur un fichier géré par Subversion et cliquez sur TortoiseSVN dans le menu contextuel.

    • Si le fichier n'a pas été modifié, le menu contient Diff avec la version précédente. Cela compare votre version locale avec la version précédente du dépôt.

    • Si vous avez modifié le fichier, l'option Diff compare vos modifications par rapport à la version d'origine extraite.

  3. Choisissez l'un des raccourcis de diff. WinMerge s'ouvrira avec les versions du fichier chargées.

L'option TortoiseSVNDiff fonctionne pour n'importe quelle paire de fichiers. Pour illustrer :

  1. Dans l'Explorateur Windows, maintenez Ctrl, sélectionnez deux fichiers et faites un clic droit.

  2. Choisissez TortoiseSVNDiff dans le menu contextuel.

    La fenêtre WinMerge s'ouvre avec les fichiers sélectionnés.


Example 2. Intégration Visual Studio Team Foundation Server

Vous pouvez configurer manuellement WinMerge comme outil par défaut dans Visual Studio pour TFS. La procédure est similaire pour d'autres systèmes.

  1. Dans Visual Studio, allez dans le menu OutilsOptions....

  2. Sous Source Control, trouvez les options Visual Studio Team Foundation Server.

  3. Cliquez sur le bouton Configure User Tools....

  4. Cliquez sur le bouton Add....

  5. Saisissez les options suivantes dans l'outil de configuration.

    • Extension: .*

    • Operation: Compare

    • Command: {Chemin vers WinMerge}\WinMergeU.exe

    • Arguments: /e /u /dl %6 /dr %7 %1 %2

    Où {Path to WinMerge} est le dossier d'installation. Par défaut : C:\Program Files (x86)\WinMerge\WinMergeU.exe

    Les arguments sont décrits dans la section Ligne de commande.

Désormais, TFS utilisera WinMerge pour chaque comparaison.