Comparateur de textes (diff)
Comparez deux textes ligne par ligne, voyez ce qui a été ajouté, supprimé et modifié à l'intérieur de chaque ligne, et copiez le résultat sous forme de diff unifié.
Épinglez vos outils ici. Ils sont enregistrés dans ce navigateur.
Épinglez un outil et son autocollant arrive ici.
Comparez deux textes ligne par ligne, voyez ce qui a été ajouté, supprimé et modifié à l'intérieur de chaque ligne, et copiez le résultat sous forme de diff unifié.
La comparaison cherche la plus courte liste de lignes à supprimer du premier texte et de lignes à y ajouter pour le transformer en second. Trouver cette liste revient à trouver la plus longue sous-séquence commune : la plus longue suite de lignes présentes dans les deux textes, dans le même ordre. Cet outil utilise l'algorithme publié par Eugene Myers en 1986, celui de GNU diff et l'algorithme par défaut de Git, dans sa variante en espace linéaire : la mémoire utilisée reste proportionnelle à la taille des textes.
Quand une ligne supprimée et une ligne ajoutée se trouvent au même endroit d'un bloc modifié, elles sont de nouveau comparées mot par mot et les mots qui diffèrent sont surlignés. Si les deux lignes ont peu en commun, elles sont affichées comme une simple suppression suivie d'un ajout, car tout surligner ou presque n'apprendrait rien.
Une ligne marquée − n'existe que dans le texte original, et une ligne marquée + que dans le texte modifié. Une ligne modifiée apparaît donc deux fois : une fois supprimée, une fois ajoutée. Les deux colonnes de nombres sont les numéros de ligne dans le texte original et dans le texte modifié. Ce sont les signes qui portent le sens ; les couleurs ne font que le répéter.
La vue unifiée met tout dans une seule colonne, dans l'ordre qu'utilise un fichier patch. La vue côte à côte garde chaque texte dans sa propre colonne et aligne les lignes qui se correspondent.
Copier en diff unifié produit le format de diff -u et de git diff. Les changements sont regroupés en blocs (hunks) entourés de trois lignes de contexte inchangées. Chaque bloc commence par un en-tête comme @@ -1,7 +1,8 @@, qui se lit ainsi : sept lignes à partir de la ligne 1 de l'original correspondent à huit lignes à partir de la ligne 1 du texte modifié.
La ligne \ No newline at end of file fait partie du format. Elle apparaît quand un texte ne se termine pas par un saut de ligne, pour qu'un patch puisse reproduire le fichier à l'identique. Les vues de la page ignorent cette différence, car une dernière ligne qui paraît identique ne doit pas être signalée comme modifiée.
Non. La comparaison est faite par JavaScript dans l'onglet de votre navigateur. L'outil n'envoie aucune requête réseau avec ce que vous collez, et la politique de sécurité du site bloque les requêtes vers tout autre hôte.
La différence est généralement invisible : des espaces en fin de ligne, une tabulation au lieu d'espaces, un espace insécable, ou une lettre accentuée enregistrée sous forme de deux caractères au lieu d'un. Activez l'option « Ignorer les changements d'espaces » pour écarter les trois premiers cas.
Oui. Enregistrez-le dans un fichier et lancez patch avec le nom du fichier à modifier, par exemple : patch notes.txt changes.diff. Si vous avez copié le diff avec une option « Ignorer » activée, les différences ignorées n'y figurent pas, et le fichier patché ne correspondra donc pas exactement au texte modifié.
Des textes de quelques milliers de lignes se comparent en une fraction de seconde. La page affiche au plus 5 000 lignes, alors que le diff copié contient toujours tous les changements. Pour deux textes très longs qui n'ont presque rien en commun, la recherche est écourtée et le résultat peut être plus long que nécessaire.
Elle s'ouvre dans sa propre fenêtre et continue de fonctionner hors ligne.
Pour l'installer, touchez le bouton Partager, puis « Sur l'écran d'accueil ».