Comparateur de texte
S’exécute dans votre navigateur ; rien n’est envoyé
Comparez deux versions d’un texte ligne par ligne, avec les mots modifiés en surbrillance.
Original
Modified
Differences
Nothing to compare yet
Qu’est-ce qu’un diff de texte ?
Un diff montre en quoi deux versions d’un texte diffèrent : quelles lignes ont été supprimées, lesquelles ont été ajoutées et lesquelles n’ont pas bougé. C’est le principe de git diff, des outils de revue de code et de la fonction de comparaison de la plupart des éditeurs.
Cet outil associe les lignes comme le font diff et git, avec l’algorithme de Myers, qui trouve le plus petit ensemble de lignes ajoutées et supprimées. Une ligne modifiée apparaît comme une ligne supprimée à côté de la ligne ajoutée qui l’a remplacée, et les mots qui ont changé à l’intérieur sont mis en surbrillance.
Quand on travaille avec des API, un diff répond à des questions comme : qu’est-ce qui a changé dans une réponse depuis hier, pourquoi la préproduction renvoie autre chose que la production, ou quels champs une nouvelle version de l’API a ajoutés ou retirés. Formatez d’abord les deux réponses JSON de la même façon, par exemple avec le formateur JSON, pour ne voir que les vrais changements.
Comment utiliser cet outil
- 1Collez ou ouvrez l’ancienne version dans Original et la nouvelle dans Modified. Vous pouvez déposer un fichier sur l’un ou l’autre éditeur. Examples propose trois paires à essayer.
- 2Lisez le panneau Differences : les lignes supprimées sont en rouge avec
−, les lignes ajoutées en vert avec+, et les mots modifiés dans une ligne sont en surbrillance. Passez de Side by side à Unified dans l’en-tête du panneau. - 3Only changes replie les longues suites de lignes inchangées en ne gardant que trois lignes autour de chaque changement ; cliquez sur une ligne repliée pour l’ouvrir. Utilisez F7 et Shift+F7, ou les flèches, pour passer d’un changement à l’autre.
- 4Utilisez Ignore pour ne pas tenir compte des différences d’espaces, de casse ou de fins de ligne (CRLF contre LF). La barre d’état indique quand les textes ne diffèrent que par les fins de ligne.
- 5Copy patch ou Download patch fournit les changements sous forme de diff unifié accepté par
git applyetpatch. Swap échange les deux côtés ; Ctrl+Z l’annule un côté à la fois, et annule aussi Clear.
Dépannage
- Toutes les lignes apparaissent modifiées
- Les textes utilisent probablement des fins de ligne différentes (CRLF de Windows contre LF) ou une indentation différente. La barre d’état indique les fins de ligne ; activez Ignore line endings ou Ignore whitespace.
- Deux réponses JSON semblent complètement différentes
- L’une est probablement minifiée ou indentée autrement. Formatez les deux avec la même indentation dans le formateur JSON, puis comparez. Son onglet Compare compare aussi le JSON clé par clé, sans tenir compte de l’ordre des clés.
- La dernière ligne apparaît modifiée alors qu’elle semble identique
- Un texte se termine par un retour à la ligne et l’autre non. Les outils de diff comptent cela comme un changement (le patch indique
\ No newline at end of file). Ignore line endings l’écarte. - Le texte collé ne montre jamais de fins de ligne CRLF
- Les navigateurs transforment en LF tout retour à la ligne saisi ou collé dans un champ de texte, donc le CRLF ne survit pas à un collage. Ouvrez plutôt les fichiers avec Open ou en les déposant : l’outil compare alors leurs fins de ligne telles qu’elles sont sur le disque.
- Trop volumineux pour être comparé
- Chaque côté peut contenir jusqu’à 50 000 lignes ou 5 millions de caractères. Pour des fichiers plus gros, utilisez
git diff --no-index a.txt b.txtoudiff -uen ligne de commande.
Questions fréquentes
Pourquoi une ligne modifiée apparaît-elle comme une suppression et un ajout ?
Les diffs comparent des lignes entières. Dès que quelque chose change sur une ligne, l’ancienne ligne ne correspond plus : elle est donc listée comme supprimée et la nouvelle comme ajoutée, l’une à côté de l’autre. Les mots en surbrillance montrent ce qui a changé dans la ligne.
Le patch tient-il compte des options Ignore ?
Non. Le patch décrit toujours les différences exactes, y compris les espaces, la casse et les fins de ligne, pour que git apply et patch puissent l’appliquer. Les options Ignore ne changent que ce qu’affiche le panneau Differences.
Que signifie "shown as replaced" ?
Quand deux grands textes n’ont presque rien en commun, trouver le plus petit diff peut prendre très longtemps. Après une quantité de travail fixe, l’outil affiche la zone restante comme entièrement supprimée et ajoutée. Le résultat reste un diff correct, simplement moins détaillé.
Mon texte est-il envoyé quelque part ?
Non. La comparaison se fait dans votre navigateur. Pour survivre à un rechargement, ce que vous collez est conservé dans le session storage de cet onglet jusqu’à ce que vous l’effaciez ou fermiez l’onglet. Copy link place l’entrée dans le lien après le #, une partie que les navigateurs n’envoient jamais à un serveur, mais toute personne à qui vous donnez le lien peut la lire. Vos réglages, comme la disposition et les options Ignore, sont enregistrés dans ce navigateur.