Comparez deux versions · Gratuit

Comparateur de texte

Comparez deux versions d'un texte et voyez chaque ligne ajoutée, supprimée ou modifiée, avec les mots changés surlignés dans les lignes retouchées. Ignorez la casse, les espaces ou les lignes vides, passez de la vue côte à côte à la vue unifiée et copiez un patch unifié. Chaque côté accepte jusqu'à 200,000 caractères ou 10,000 lignes, et la comparaison se fait dans votre navigateur.

Comparé dans votre navigateur · Rien n'est importé
Signaler un problème

Espace de comparaison de texte

Les deux panneaux sont vides. Collez une version de chaque côté pour les comparer.

Poste de comparaison

Collez les deux versions

L'ancienne à gauche, la nouvelle à droite. Les deux restent dans cet onglet : le texte n'est jamais envoyé ni conservé nulle part.

0 ligne · 0 mot · 0 caractère
0 ligne · 0 mot · 0 caractère
Détail dans une ligne modifiée
Seuil d'appariement des lignes

Une ligne supprimée et une ligne ajoutée ne sont comparées de l'intérieur que si leur part de caractères communs dépasse 0.30.

Considérer comme égal

Ces options changent ce qui compte comme égal, jamais ce qui est affiché. Chaque caractère à l'écran et dans le patch copié est exactement celui que vous avez collé.

Aucune différence
n/d

Collez une version dans chaque panneau et la comparaison apparaîtra ici.

Lignes ajoutées
0
Lignes supprimées
0
Lignes modifiées
0
Lignes inchangées
0
Mots ajoutés
0
Mots supprimés
0
Caractères ajoutés
0
Caractères supprimés
0
La comparaison

Côte à côte, en colonnes appariées

Les ajouts portent un plus et un soulignement, les suppressions un moins et un barré, si bien que le résultat reste lisible imprimé en noir et blanc ou lu sans couleur.

Les deux panneaux sont vides. Collez une version antérieure à gauche et une plus récente à droite, ou cliquez sur Charger un exemple pour voir deux notes de version qui réunissent tous les types de changement à la fois : trois lignes reformulées, une ligne réécrite, une nouvelle ligne, une nouvelle ligne vide et une espace finale que vous ne repéreriez jamais à l'œil nu avant d'activer Afficher les invisibles.

Patch unifié

La même comparaison, sous forme de patch

De vrais en-têtes de bloc, des lignes de contexte de chaque côté et des blocs fusionnés lorsqu'ils sont proches. Ce sont les conventions de git et de GNU diff.

Un patch unifié apparaît ici dès qu'il y a quelque chose à décrire.

Un bloc déplacé apparaît deux fois

Le script d'édition a deux verbes, supprimer et insérer ; il n'existe pas de déplacement. Déplacer un paragraphe s'écrit comme sa disparition ici et son arrivée là, et c'est pourquoi une seule action produit deux blocs de couleur.

Le plus court n'est pas unique

Comparer « a b c » avec « a c b » donne deux réponses tout aussi courtes, et chaque outil en choisit une par convention. Quand un diff incrimine une ligne que vous n'avez pas touchée, il a généralement choisi un autre récit du même changement.

Les espaces sont parfois l'essentiel

Ignorer l'espacement convient à la prose et au code reformaté. C'est une erreur pour Python, YAML et les Makefiles, où l'indentation et une tabulation littérale font partie de la syntaxe. Là, un changement d'espaces seuls est le changement.

Les deux textes restent dans cet onglet. La comparaison est du simple JavaScript exécuté sur votre propre machine : le texte n'est jamais importé ni envoyé nulle part, et aucune copie n'est conservée, donc un contrat, un brouillon ou un fichier de configuration contenant une clé est aussi en sécurité ici que dans votre éditeur. Chaque côté accepte jusqu'à 200,000 caractères ou 10,000 lignes ; au-delà des limites de recherche, une zone est présentée comme un bloc remplacé par un autre, et la page le signale au lieu de prétendre que la réponse est minimale.

Comment ça marche

Deux textes, et l'histoire la plus économique qui les relie.

Un diff n'est pas une liste de différences ; c'est le plus petit ensemble de suppressions et d'insertions qui transforme le premier texte en second. La distinction est réelle. Elle explique pourquoi un paragraphe déplacé apparaît deux fois, pourquoi une ligne modifiée est techniquement une suppression placée à côté d'un ajout, et pourquoi deux outils différents peuvent être en désaccord sur la même modification tout en ayant raison tous les deux. Cette page applique l'algorithme de Myers aux lignes, affine chaque paire modifiée de l'intérieur et montre son raisonnement, y compris les moments où elle a dû se contenter d'une réponse moins fine.

  1. 01

    Collez les deux versions

    Collez l'original à gauche et la version révisée à droite, ou chargez l'exemple. S'ils sont inversés, échangez les deux côtés. Les deux textes sont comparés dans votre navigateur et ne sont pas envoyés.

  2. 02

    Décidez de ce qui compte comme différence

    Considérez comme égaux la casse, tous les espaces, les espaces en début et fin de ligne ou les lignes vides, et choisissez le niveau de détail Ligne, Mot ou Caractère pour les lignes modifiées. Ces options changent ce qui est comparé, jamais le texte collé.

  3. 03

    Lisez le résultat ou copiez le patch

    Lisez les changements côte à côte ou en vue unifiée, avec le nombre de lignes et de mots ajoutés et supprimés et un degré de ressemblance. Copiez ensuite le patch unifié avec jusqu'à 10 lignes de contexte.

Conçu pour les brouillons, les contrats, les configurations et la revue de code

Des scripts d'édition minimaux, le détail mot par mot et un patch qui s'applique vraiment.

Le plus court script d'édition, pas une première approximation

La comparaison repose sur l'algorithme de Myers, qui trouve un script de longueur minimale plutôt que le premier alignement plausible ; déplacer une phrase ne fait donc pas apparaître toutes les lignes suivantes comme modifiées. Les débuts et fins communs sont retirés avant même le début de la recherche, et c'est pourquoi la modification d'un mot dans un long document se résout instantanément.

Deux niveaux, pour qu'un mot se lise comme un mot

Les lignes sont comparées d'abord, puis une ligne supprimée placée face à une ligne ajoutée est comparée de nouveau de l'intérieur. Remplacez « mardi » par « jeudi » et un seul mot est surligné, pas un paragraphe entier barré. Cette seconde passe dépend du degré de ressemblance des deux lignes, si bien que des lignes réellement sans rapport ne sont pas forcées dans un faux appariement.

Des options qui changent la comparaison, jamais vos caractères

Ignorer la casse ou les espaces consiste à comparer des copies normalisées tout en affichant les originaux. Chaque caractère à l'écran et dans le patch copié est exactement celui que vous avez collé : aucune ligne n'est discrètement rognée, mise en minuscules ou réindentée en chemin.

Un patch unifié avec de vrais en-têtes de bloc

Le panneau du patch produit des en-têtes `@@ -a,b +c,d @@` corrects, avec un nombre réglable de lignes de contexte, des blocs fusionnés lorsqu'ils sont proches et un compte de un écrit sans sa virgule. Ce sont les mêmes conventions que git et GNU diff, donc le résultat se colle directement dans une revue.

Des chiffres avec leur formule

Lignes ajoutées, supprimées, modifiées et inchangées ; mots et caractères gagnés et perdus ; et un pourcentage de similarité qui indique comment il a été obtenu au lieu de vous demander de lui faire confiance. Les statistiques sont toujours mesurées au niveau des mots, donc changer la façon dont une ligne modifiée est affichée ne les fait jamais bouger.

Il se simplifie là où il risquerait de bloquer

Comparer deux textes sans rien en commun est un travail quadratique, donc la distance d'édition comme l'effort total de recherche sont plafonnés. Au-delà du plafond, une zone est présentée comme un bloc remplacé par un autre (toujours correct, mais pas minimal), et la page le signale au lieu de servir discrètement une réponse moins bonne.

Questions sur les diffs

Blocs déplacés, fins de ligne invisibles et ce que vous dit la ligne @@.

Comment comparer deux textes pour voir les différences ?+

Collez l'ancienne version dans Original et la nouvelle dans Révisé ; la comparaison se met à jour pendant la saisie. Les lignes supprimées portent un signe moins et sont barrées, les lignes ajoutées un signe plus et un soulignement, et quand une ligne modifiée ressemble assez à son ancienne version, seuls les mots changés sont surlignés.

Puis-je comparer deux documents Word ou PDF ?+

Oui, en collant leur texte. Le comparateur traite du texte brut, pas des fichiers : copiez le texte de chaque document et collez-en un dans chaque panneau. Les polices, le gras et la mise en page ne sont pas comparés. Un texte copié depuis un PDF peut couper les lignes à d'autres endroits, ce qui apparaît comme des lignes modifiées : copiez donc les deux versions de la même façon.

Mon texte est-il envoyé ou enregistré quelque part ?+

Non. La comparaison s'exécute en JavaScript dans cet onglet : un contrat, un brouillon ou un fichier de configuration contenant une clé n'est pas envoyé, et la page n'enregistre aucun des deux textes. Vider les panneaux ou fermer l'onglet les efface tous les deux.

Pourquoi un paragraphe déplacé apparaît-il comme supprimé et ajouté ?+

Un diff ne connaît que deux opérations, supprimer et insérer : déplacer un bloc apparaît donc comme sa suppression à l'ancienne position et son arrivée à la nouvelle. Ce comparateur ne détecte pas les déplacements. Pour une revue lisible, déplacez la section dans une révision et reformulez-la dans la suivante.

Pourquoi deux textes identiques en apparence montrent-ils des différences ?+

Le plus souvent à cause de caractères invisibles : espaces en fin de ligne, tabulations au lieu d'espaces ou espace insécable collée depuis une page web. Activez Afficher les invisibles pour voir les espaces et les tabulations, ou considérez les espaces comme égaux. Des fins de ligne différentes (CRLF de Windows contre LF d'Unix) ne créent pas de faux changements ici ; la page signale seulement qu'elles diffèrent.

Quand faut-il ignorer les espaces ?+

Ignorez-les pour de la prose ou du code reformaté, où une nouvelle indentation ou des espaces en fin de ligne noieraient le résultat. Gardez-les quand l'espacement fait partie de la syntaxe, comme l'indentation de Python et de YAML ou les tabulations d'un Makefile. Espaces en début et fin ne pardonne que les extrémités de chaque ligne et signale encore l'indentation ; Tous les espaces pardonne chaque espace et chaque tabulation.

Que signifie la ligne @@ dans le patch unifié ?+

C'est un en-tête de bloc qui indique à un programme de patch où placer le bloc. @@ -12,7 +12,9 @@ signifie sept lignes à partir de la ligne 12 de l'original et neuf à partir de la ligne 12 de la révision, lignes de contexte inchangées comprises. En dessous, une espace marque une ligne inchangée, un signe moins une ligne supprimée et un signe plus une ligne ajoutée.

Quelle longueur peuvent avoir les deux textes ?+

Chaque côté accepte jusqu'à 200,000 caractères ou 10,000 lignes, soit environ un manuscrit de 40,000 mots. Si les textes diffèrent de plus de 12,000 modifications de ligne ou si la recherche atteint sa limite d'effort, une zone est affichée comme un bloc remplacé par un autre, et la page le signale. Le résultat reste correct, seulement moins détaillé.

D'autres outils ciblés, prêts quand vous l'êtes.

Découvrez une collection grandissante pour les calculs, les documents, la rédaction et le travail de tous les jours.

Voir tous les outils