Comparateur de texte (diff)

Comparez deux textes ou extraits de code ligne par ligne. Les lignes ajoutées, supprimées et modifiées sont surlignées, jusqu’aux mots exacts qui diffèrent.

Fonctionne dans le navigateurSans inscriptionAucun envoi de données

Collez du texte dans les deux zones pour voir les différences.

Comment utiliser : Comparateur de texte (diff)

  1. Collez le texte d’origine à gauche et le texte modifié à droite, ou ouvrez deux fichiers.
  2. La comparaison se met à jour pendant la saisie. Choisissez la vue Côte à côte ou Unifié.
  3. Cochez Ignorer les espaces, Ignorer la casse ou Ignorer les lignes vides pour masquer le bruit, comme une réindentation.
  4. Utilisez Masquer l’inchangé pour vous concentrer sur les changements, avec trois lignes de contexte autour de chacun.
  5. Cliquez sur Copier en patch ou Télécharger .diff pour obtenir un diff unifié standard applicable avec git apply ou patch.

Comment fonctionne ce comparateur

L’outil découpe les deux entrées en lignes et exécute l’algorithme de différence de Myers, le même algorithme en O(ND) que celui de git diff et de GNU diff. Il trouve la plus courte suite d’insertions et de suppressions qui transforme l’original en texte modifié : le résultat montre donc le moins de lignes modifiées possible. Les lignes identiques au début et à la fin sont d’abord ignorées, ce qui rend quasi instantanée la comparaison de fichiers de plusieurs milliers de lignes.

Lorsqu’une ligne supprimée et une ligne ajoutée se suivent, elles sont associées en une ligne modifiée et comparées à nouveau mot par mot. Les mots qui ont réellement changé sont surlignés plus fortement, si bien qu’une variable renommée ou un nombre modifié ressort au milieu d’une longue ligne.

Vue côte à côte ou unifiée

La vue Côte à côte place l’original à gauche et la nouvelle version à droite, avec les numéros de ligne des deux. C’est la vue la plus simple pour relire de la prose, des fichiers de configuration et de petites modifications de code. La vue Unifiée entrelace les lignes supprimées (-) et ajoutées (+) dans une seule colonne, le format des outils de revue de code et des fichiers patch.

Format diff unifié (patch)

Le patch exporté suit le format diff -u : un en-tête ---/+++, puis des blocs (hunks) qui commencent par @@ -l,s +l,s @@, où l est le numéro de la première ligne et s le nombre de lignes du bloc dans chaque fichier. Chaque bloc inclut trois lignes de contexte inchangées, ce qui permet de l’appliquer avec patch -p0 ou git apply même si des lignes voisines ont bougé.

Quand utiliser les options d’exclusion

  • Ignorer les espaces considère deux lignes comme égales si elles ne diffèrent que par des espaces ou des tabulations. Utile après une réindentation ou un passage des tabulations aux espaces.
  • Ignorer la casse est pratique pour le SQL, le HTML et les fichiers de log, où les majuscules n’ont pas d’importance.
  • Ignorer les lignes vides masque les lignes ajoutées ou supprimées uniquement pour l’espacement.

Questions fréquentes

Mon texte est-il envoyé quelque part ?
Non. La comparaison s’exécute entièrement dans votre navigateur, en JavaScript. Rien de ce que vous collez n’est envoyé à un serveur : vous pouvez comparer en toute sécurité du code privé, des contrats ou des fichiers de configuration.
Quelle taille peuvent faire les textes ?
Des fichiers de plusieurs dizaines de milliers de lignes se comparent en bien moins d’une seconde sur un ordinateur portable classique. Comme le coût de l’algorithme augmente avec le nombre de différences, ce sont deux énormes fichiers totalement différents qui prennent le plus de temps.
Puis-je comparer deux fichiers au lieu de coller du texte ?
Oui. Utilisez les boutons Ouvrir un fichier au-dessus de chaque zone pour charger un fichier local. Le fichier est lu par votre navigateur et n’est jamais envoyé.
Pourquoi une ligne apparaît-elle comme supprimée puis ajoutée plutôt que modifiée ?
Les lignes ne sont associées comme « modifiées » que lorsqu’un bloc de lignes supprimées est directement suivi d’un bloc de lignes ajoutées. Si les deux lignes ont très peu de texte en commun, le surlignage mot à mot est omis, car il serait plus confus que d’afficher toute la ligne comme modifiée.
Comment comparer des objets JSON ?
Utilisez l’outil JSON Diff. Il compare la structure analysée, de sorte que l’ordre des clés et la mise en forme ne créent pas de fausses différences, et il liste les chemins exacts qui ont changé.

Outils associés