Comparer deux textes (diff)
Comparez deux textes et voyez ce qui a changé, ligne par ligne et mot par mot, côte à côte ou en diff unifié.
Comparer deux textes - trouver les différences en ligne
Collez un texte original à gauche et sa version modifiée à droite : chaque différence apparaît aussitôt, les lignes supprimées en rouge, les lignes ajoutées en vert, et dans chaque ligne modifiée les mots exacts qui ont changé. Cela fonctionne pour des contrats et des articles comme pour du code source, des fichiers de configuration ou des journaux, et les deux textes restent tout du long dans votre navigateur.
Repérer à l'œil un chiffre modifié dans un document de deux pages est lent et peu fiable. Un comparateur de texte le fait en quelques millisecondes et ne rate ni la virgule déplacée ni le prix passé de 40 à 45.
Comment comparer deux textes
- Collez la version originale dans Texte original et la nouvelle dans Texte modifié.
- La comparaison s'affiche dessous pendant la saisie, avec le nombre de lignes ajoutées et supprimées.
- Choisissez Côte à côte ou Unifiée, et cochez Ignorer les espaces ou Ignorer la casse si ces changements ne comptent pas pour vous.
- Cliquez sur Copier en diff unifié pour emporter les modifications sous forme de patch.
Lire le résultat
| Vous voyez | Cela signifie |
|---|---|
| Une ligne rouge, à gauche seulement | La ligne a été supprimée |
| Une ligne verte, à droite seulement | La ligne a été ajoutée |
| Une ligne rouge et une ligne verte côte à côte | La ligne a été modifiée ; les mots marqués sont ce qui a changé |
| Une barre grise avec un nombre | Des lignes inchangées masquées pour garder les modifications en vue |
Seulement les modifications et 3 lignes autour est activé par défaut : un long fichier avec deux retouches n'affiche que ces retouches avec un peu de contexte, comme dans une revue de code. Décochez l'option pour voir les deux textes en entier.
Côte à côte ou unifiée
Côte à côte place les deux versions dans des colonnes parallèles, chacune avec ses numéros de ligne : c'est la façon la plus simple de lire de la prose et de confronter une ligne modifiée à son original. Unifiée affiche une seule colonne, avec les lignes supprimées marquées d'un moins et les lignes ajoutées d'un plus : c'est ainsi que Git et la plupart des outils de revue de code affichent un diff, et cela prend moins de largeur sur un petit écran.
Au niveau du mot, du caractère ou de la ligne
Les lignes sont comparées d'abord. Quand une ligne supprimée et une ligne ajoutée se ressemblent, elles sont placées l'une en face de l'autre et comparées à nouveau, et Surligner dans les lignes décide de la finesse : Mots convient à la prose et à la plupart du code, Caractères attrape un seul chiffre ou une seule lettre modifiés dans un identifiant ou un hash, et Désactivé n'affiche que des lignes entières. Les lignes qui n'ont rien en commun ne sont pas appariées de force : une suppression sans rapport n'est pas comparée mot à mot avec un ajout sans rapport.
Ignorer ce qui ne compte pas
- Ignorer les espaces considère comme égales les lignes qui ne diffèrent que par l'indentation, les espaces ou les tabulations. Utile après un reformatage du code, ou quand un éditeur a converti les tabulations en espaces.
- Ignorer la casse traite majuscules et minuscules de la même façon, pratique pour les mots-clés SQL ou un texte ressaisi avec une autre capitalisation.
- Les fins de ligne ne comptent jamais comme une modification : les sauts de ligne Windows et Unix sont normalisés avant la comparaison.
Comment ça marche
La comparaison utilise l'algorithme de Myers, celui que Git utilise par défaut. Il trouve le plus petit ensemble de lignes ajoutées et supprimées qui transforme un texte en l'autre : le résultat montre ce qui a vraiment été modifié plutôt qu'une longue liste de lignes déplacées. Les lignes que les deux textes partagent au début et à la fin sont d'abord mises de côté, ce qui rend rapide la comparaison de deux versions d'un long fichier : une seule modification dans un fichier de 20 000 lignes est trouvée en une fraction de seconde.
Créer un patch
Copier en diff unifié produit un patch standard avec des en-têtes --- et +++ et des blocs @@ accompagnés de trois lignes de contexte. Enregistrez-le dans un fichier et il s'applique avec git apply changes.diff ou patch -p0 < changes.diff, à condition que les noms de fichiers des en-têtes correspondent aux vôtres.
Vos textes restent privés
Les deux textes sont comparés par du JavaScript dans la page. Rien n'est envoyé ni stocké, ce qui est exactement ce qu'il faut pour comparer des projets de contrat, du code non publié ou tout ce qui contient des données personnelles.
Outils associés
Pour comparer deux fichiers JSON, formatez-les d'abord tous les deux avec le formateur JSON afin que l'ordre des clés et l'indentation correspondent, puis comparez-les ici. Pour vérifier que deux fichiers sont identiques octet pour octet sans regarder leur contenu, comparez leurs empreintes avec le générateur de hash.