Comparaison de différences de texte (Diff)
Comparez deux blocs de texte ligne par ligne et affichez les lignes ajoutées et supprimées mises en couleur. Utile pour vérifier les modifications d'un fichier de configuration, relire un document ou faire une revue de code sans Git. Tout le calcul s'effectue dans le navigateur ; le contenu saisi n'est jamais envoyé à un serveur.
Astuces
- Collez la version avant et après d'un fichier de configuration (.env, YAML, JSON, etc.) pour voir instantanément quelles lignes ont été ajoutées ou supprimées.
- Même sans Git installé, un simple copier-coller de deux versions permet de faire une revue de code sommaire ou de relire un document.
- Une ligne qui a simplement changé de position est détectée comme une suppression plus un ajout, et non comme un "déplacement" — gardez cela en tête en lisant le résultat.
- Les espaces, les sauts de ligne et la casse sont comparés de façon stricte, si bien qu'une ligne dont seule l'indentation a changé apparaîtra aussi comme modifiée.
- Pour comparer un texte long, mettre un paragraphe par ligne avant de le coller permet de repérer les différences paragraphe par paragraphe d'un coup d'œil.
Questions fréquentes
Anecdote — comment le LCS (plus longue sous-séquence commune) calcule les différences de texte
L'algorithme le plus connu pour détecter les différences entre deux textes est l'"algorithme de diff de Myers", publié dans les années 1970 par l'informaticien Eugene Myers, chez IBM. La commande `diff` des principaux systèmes de gestion de versions, comme Git et SVN, repose sur cette famille d'algorithmes et détecte efficacement les lignes ajoutées et supprimées. Cet outil suit la même logique en calculant la plus longue sous-séquence commune (LCS) pour réduire le résultat à un ensemble minimal de changements.
La plus longue sous-séquence commune (LCS) est la plus longue séquence qui apparaît, dans le même ordre, dans les deux séquences comparées — ici, la séquence des lignes. La différence entre deux textes s'obtient en considérant chaque ligne absente de cette LCS comme "supprimée" ou "ajoutée" ; plus la LCS est longue, moins de changements s'affichent à l'écran. Une technique appelée programmation dynamique (PD) rend ce calcul praticable même pour des textes comportant de nombreuses lignes.
Les algorithmes de diff ont une faiblesse connue : lorsqu'une ligne se déplace simplement à une autre position, la plupart des implémentations ne le détectent pas comme un "déplacement" mais l'affichent comme une suppression associée à un ajout. C'est pourquoi comparer des textes dont l'ordre des lignes a été fortement remanié peut faire paraître la différence plus importante que le changement réel. Connaître cette particularité aide à interpréter les résultats sans se tromper.