En quoi consiste cet outil ?
Un outil de comparaison (ou « diff ») compare deux textes et affiche l'ensemble minimal de modifications permettant de transformer l'un en l'autre. C'est ainsi que les systèmes de contrôle de version comme Git affichent les modifications de code, et cet outil est tout aussi utile pour comparer des fichiers de configuration, des contrats, des articles ou n'importe quelles paires de versions.
Cet outil compare ligne par ligne en utilisant la même famille d'algorithmes (sous-séquence commune la plus longue) que les utilitaires de comparaison classiques ; le résultat s'affiche donc comme une révision de code habituelle : + pour les lignes ajoutées, − pour celles supprimées.
Pourquoi l'utiliser ?
- Découvrez ce qui a réellement changé entre deux versions, plutôt que de les comparer à l'œil nu.
- Affichage classique de type Git : ajouts en vert, suppressions en rouge, avec les lignes de contexte entre les deux.
- Un aperçu rapide du nombre total de lignes ajoutées et supprimées.
- Fonctionne avec n'importe quel type de texte : code, fichiers de configuration, documents, listes.
- Confidentiel : les deux textes restent dans votre navigateur, rien n'est transféré.
Mode d'emploi
- Collez le texte d'origine dans la case de gauche.
- Collez la version modifiée dans la case de droite.
- Cliquez sur « Comparer ».
- Voici le résultat : les lignes vertes ont été ajoutées, les lignes rouges ont été supprimées, les lignes simples sont inchangées.
Exemple
Entrée
Original:
line one
line two
line three
Changed:
line one
line 2
line threeRésultat
line one
− line two
+ line 2
line threeLa ligne du milieu a été modifiée ; le fichier de comparaison indique que l'ancienne ligne a été supprimée et que la nouvelle a été ajoutée.
Cas d'utilisation courants
- Pour relire un paragraphe réécrit par une IA : collez le texte original et la version générée par l'IA afin de voir exactement quelles phrases ont été modifiées, plutôt que de relire l'intégralité du texte pour repérer les modifications.
- Comparaison de deux projets de contrat : les modifications juridiques sont souvent plus faciles à parcourir sous forme de comparaison de lignes que sous forme de « modifications suivies » lorsque le document a été reformaté entre deux versions.
- Vérification d'un fichier de configuration après un déploiement : collez les versions « avant » et « après » d'un fichier .env ou YAML pour vous assurer que seules les lignes prévues ont été modifiées.
- Comparaison des révisions apportées au texte traduit : découvrez quelles lignes ont effectivement été modifiées par un traducteur ou un relecteur d'une version à l'autre.
Limites à connaître
Il s'agit d'une comparaison au niveau des lignes, et non au niveau des mots : si vous déplacez un paragraphe du début vers la fin d'un document sans en modifier le texte, cela s'affiche comme une suppression complète suivie d'un ajout complet, et non comme une annotation « déplacé ». Pour les textes riches en paragraphes où seuls quelques mots changent par phrase, un outil de comparaison au niveau des mots mettrait moins de texte en évidence, mais la comparaison au niveau des lignes est la norme pour le code, les fichiers de configuration et les documents structurés, et c'est sur cela que se concentre cet outil.
Fonctionnement de l'algorithme de comparaison
L'outil identifie la plus longue sous-séquence commune (LCS) entre les deux textes — c'est-à-dire l'ensemble le plus vaste de lignes apparaissant dans le même ordre relatif dans les deux versions, même si d'autres lignes ont été insérées ou supprimées entre elles. Tout ce qui se trouve dans cette sous-séquence commune est présenté comme du contexte inchangé ; tout le reste est classé soit comme supprimé (présent uniquement dans l’original), soit comme ajouté (présent uniquement dans la nouvelle version). Il s’agit du même algorithme de base que celui utilisé par l’utilitaire diff d’Unix et la comparaison ligne par ligne de Git ; c’est pourquoi le format de sortie vous semblera immédiatement familier si vous avez déjà examiné une pull request.
Une conséquence pratique : si une ligne est dupliquée ailleurs dans le document (le même texte apparaît deux fois), l'algorithme l'associe à l'occurrence qui minimise le plus les différences globales — ce qui peut parfois donner lieu à un appariement légèrement différent de ce à quoi on s'attendrait intuitivement, même si le nombre final de lignes ajoutées ou supprimées est toujours exact, quelle que soit la manière dont les doublons ont été appariés.
Foire aux questions
La comparaison s'effectue-t-elle mot à mot ou ligne par ligne ?
Ligne par ligne, comme avec `git diff`. Une ligne modifiée s'affiche sous la forme d'une suppression et d'un ajout. Les comparaisons ligne par ligne constituent la norme pour le code et les fichiers de configuration, et restent lisibles même pour des textes volumineux.
Pourquoi une modification minime fait-elle apparaître toute la ligne comme ayant été modifiée ?
L'unité de comparaison étant la ligne, tout changement au sein de celle-ci affecte l'ensemble de la ligne. Divisez les longs paragraphes en lignes plus courtes si vous avez besoin d'une granularité plus fine.
Les espaces ont-ils de l'importance ?
Oui. Les lignes doivent correspondre exactement ; ainsi, un espace à la fin ou une indentation différente font que les lignes sont considérées comme différentes. C'est voulu : les différences d'espaces blancs constituent de véritables différences dans le code et les fichiers de configuration.
Y a-t-il une limite de taille ?
Il n'y a pas de limite stricte, mais les textes très volumineux (des dizaines de milliers de lignes) peuvent prendre un certain temps, car la comparaison s'effectue localement sur votre appareil.
Mes textes ont-ils été mis en ligne à des fins de comparaison ?
Non. L'algorithme de comparaison s'exécute entièrement dans votre navigateur grâce à JavaScript. Les deux textes restent sur votre appareil : vos contrats, documents internes et codes non publiés sont ainsi en sécurité.