Comparateur de texte / code
Comparez deux extraits de code ou de texte ligne par ligne, avec les lignes ajoutées et supprimées surlignées.
Mode d'emploi
- Collez la version antérieure dans « Texte original » et la version ultérieure dans « Texte modifié ». Les deux zones contiennent au départ un court exemple JSON que vous pouvez remplacer.
- Le résultat sous « Différences » se met à jour pendant que vous saisissez ou collez du texte. Il n’y a pas de bouton de comparaison sur lequel cliquer.
- Lisez le résultat de haut en bas : une ligne marquée - sur fond rouge a été supprimée de l’original, une ligne marquée + sur fond vert a été ajoutée dans le texte modifié, et les lignes en gris sans marque sont identiques dans les deux textes.
- Regardez les nombres affichés au même niveau que « Différences » : ils indiquent le nombre de lignes ajoutées et supprimées, et une ligne modifiée compte une fois comme supprimée et une fois comme ajoutée. Lorsque toutes les lignes correspondent, « Les deux textes sont identiques. » s’affiche à leur place.
Questions fréquentes
Le texte que je compare est-il envoyé ou enregistré ?
Non. La comparaison s’effectue dans votre navigateur en JavaScript, et le texte que vous collez n’est pas envoyé à LeedyBox. L’outil ne l’enregistre pas non plus.
Pourquoi deux lignes qui semblent identiques apparaissent-elles l’une comme supprimée, l’autre comme ajoutée ?
Les lignes sont comparées à l’identique, caractère par caractère : une espace en fin de ligne, une tabulation à la place d’espaces, une espace insécable à la place d’une espace normale ou un caractère invisible de largeur nulle suffit à les rendre différentes. De nombreuses lettres accentuées peuvent aussi être enregistrées sous deux formes Unicode, en un seul caractère ou en une lettre suivie d’un accent combinant, qui s’affichent de la même façon mais ne correspondent pas. Les majuscules et les minuscules comptent elles aussi comme des caractères différents. Les fins de ligne Windows et Unix sont considérées comme identiques : elles ne sont donc pas en cause.
Pourquoi une ligne vide apparaît-elle comme ajoutée ou supprimée à la fin ?
En général, l’un des textes se termine par un saut de ligne et l’autre non. Le texte est découpé à chaque saut de ligne : un saut de ligne tout à la fin ajoute donc une dernière ligne vide. Faites en sorte que les deux textes se terminent de la même façon, et la ligne en trop disparaît.
Comment les lignes modifiées et déplacées sont-elles affichées ?
L’outil cherche le plus grand nombre de lignes présentes dans les deux textes dans le même ordre, et marque toutes les autres comme supprimées ou ajoutées. Une ligne modifiée apparaît donc comme une ligne supprimée et une ligne ajoutée, la ligne supprimée venant en général en premier ; lorsque plusieurs lignes consécutives sont modifiées, les lignes supprimées viennent généralement d’abord, regroupées. Les déplacements ne sont pas détectés en tant que tels : un déplacement apparaît comme des lignes supprimées à un endroit et ajoutées à un autre. Lorsqu’un bloc de nombreuses lignes est déplacé au-delà de quelques autres lignes, ce sont parfois ces quelques lignes qui apparaissent comme supprimées et ajoutées, tandis que le bloc lui-même reste sans marque.
Puis-je utiliser le résultat comme patch pour git apply ou la commande patch ?
Non. Le résultat affiche toutes les lignes, avec + devant les lignes ajoutées, - devant les lignes supprimées et deux espaces devant les lignes inchangées. Contrairement à un diff unifié, il ne comporte ni en-têtes de bloc @@ avec les numéros de ligne, ni lignes --- et +++ avec les noms de fichiers : git apply et la commande patch ne peuvent donc pas le lire. Servez-vous-en pour examiner les modifications, et créez vos fichiers patch avec git diff ou diff -u.
Quelle quantité de texte puis-je comparer ?
Les lignes qui correspondent au début et à la fin des deux textes ne comptent pas dans la limite, et elles restent affichées dans le résultat. Si le nombre de lignes restantes de l’original multiplié par le nombre de lignes restantes du texte modifié dépasse 4 000 000, par exemple 2 500 lignes contre 2 000, l’outil affiche un message au lieu d’un résultat. Dans ce cas, comparez les textes par parties plus petites. En dessous de la limite, de longs textes peuvent tout de même ralentir la page pendant la saisie, car la comparaison est relancée après chaque modification.
Pourquoi du JSON ou du code reformaté présente-t-il autant de modifications ?
L’outil compare du texte, pas du sens : une nouvelle indentation, des clés réordonnées ou une ligne coupée en deux comptent toutes comme des modifications. Mettez en forme les deux versions de la même façon, avec la même indentation et le même ordre des clés, avant de les comparer, afin que les différences restantes portent surtout sur le contenu.