Comparez deux blocs de texte et visualisez les différences.
+3 ajoutées-2 supprimées
-function greet(name) {
+function greet(name, greeting = "Hello") {
- console.log("Hello " + name);
+ console.log(greeting + " " + name);
}
greet("World");
+greet("Alice", "Hi");
Tous les calculs sont effectués localement dans votre navigateur. Aucune donnée n'est envoyée au serveur.
Les résultats sont fournis à titre informatif. Vérifiez-les auprès d'autres sources.
Comment fonctionne la comparaison de textes
Un diff cherche le plus petit ensemble d'insertions et de suppressions transformant un texte en un autre. Il ne détecte pas qu'une ligne a « bougé » ou « changé » : ce sont des interprétations posées par un visualiseur sur une suppression suivie d'une insertion.
Comment ça marche
- Calcule la plus longue sous-séquence commune des deux entrées, puis signale tout ce qui en sort comme ajouté ou supprimé.
- Travaille ligne par ligne par défaut, ce qui rend les diffs lisibles pour du code et inutiles pour de la prose reformatée.
- Marque une ligne modifiée comme une suppression plus une insertion, car c'est exactement ce qu'elle est au niveau de l'algorithme.
plus longue sous-séquence commune (LCS) lignes uniquement à gauche → suppressions lignes uniquement à droite → insertions lignes dans la LCS → inchangées similarité ≈ 2 × longueur LCS / (lignes gauche + lignes droite)
Exemple chiffré
Un fichier de trois lignes dont une est modifiée et une ajoutée.
- gauche : alpha / beta / gamma
- droite : alpha / BETA / gamma / delta
- LCS = alpha, gamma (2 lignes)
- beta → suppression, BETA → insertion, delta → insertion
Trois changements signalés, pas deux : la modification de beta compte comme une suppression plus une insertion. Similarité = 2 × 2 / (3 + 4) = 57%.
Lire le résultat
- Un paragraphe entier reformaté à une autre largeur produit un diff où chaque ligne a changé, alors qu'à peine un mot l'a fait. Passez à un diff par mots pour la prose, ou comparez la source avant l'habillage.
- Les espaces en fin de ligne et les différences de fin de ligne créent des changements fantômes. Si un fichier entier semble modifié sans différence visible, vérifiez d'abord CRLF contre LF.
- Le résultat dépend du côté que vous appelez « original ». Inverser les entrées transforme chaque insertion en suppression, ce qui compte quand on lit une revue.
- Cela s'exécute dans votre navigateur : coller un fichier confidentiel ici ne l'envoie nulle part. Ce n'est pas le cas de tous les outils de diff en ligne.
Questions fréquentes
- Pourquoi mon diff montre-t-il tout le fichier comme modifié ?
- Presque toujours les fins de ligne ou l'indentation. Un fichier enregistré sous Windows et modifié sous Linux diffère invisiblement à chaque ligne. Activez la comparaison insensible aux espaces, ou normalisez d'abord les fins de ligne.
- Peut-il montrer que j'ai déplacé un bloc de code ?
- Pas directement : un déplacement est une suppression à un endroit et une insertion à un autre, et le diff standard le rapporte ainsi. Certains outils détectent les déplacements en post-traitement de cette sortie brute.