Aller au contenu principal

Comparer du texte

Le comparateur de différences est un moteur de comparaison de texte rapide, entièrement côté client, qui exécute l’algorithme de différences de Myers directement dans votre navigateur. Il prend en charge les granularités ligne, mot et caractère, les vues unifiée et côte à côte, les options de normalisation des espaces et de la casse, et génère instantanément un patch de diff unifié, sans aucune transmission réseau externe.

100 % local
Texte original (base)
0 B1 ligneLig. 1, Col. 1
Texte modifié (cible)
0 B1 ligneLig. 1, Col. 1
Statistiques :+0 ajoutées-0 supprimées1 inchangées
1
1

Comment fonctionne Comparer du texte ?

Le moteur de diff de texte de ToolsByUs repose sur l’article fondateur d’Eugene W. Myers, « An O(ND) Difference Algorithm and Its Variations ». L’algorithme modélise le calcul du script d’édition minimal (SES) comme la recherche d’un plus court chemin dans un graphe d’édition allant des coordonnées (0, 0) aux coordonnées (N, M).

En suivant les chemins les plus lointains atteints le long des diagonales k = x - y pour chaque distance d’édition D, le diff de Myers découvre le nombre minimal d’insertions et de suppressions nécessaires pour transformer le texte original en texte cible. Appliqué au niveau des mots, le moteur effectue un diff secondaire sur les lignes modifiées afin d’isoler précisément les suppressions et les insertions au niveau du mot.

Contrairement aux outils côté serveur qui transmettent vos fichiers sources, vos configurations propriétaires ou vos journaux confidentiels vers une base de données distante, ToolsByUs exécute l’intégralité de la matrice d’édition de Myers directement dans la mémoire du navigateur, en local.

Exemple : original et modifié

// Original:
const port = 8080;

// Modified:
const port = 3000;

Exemple de sortie

// Unified Diff:
@@ -1,1 +1,1 @@
-const port = 8080;
+const port = 3000;

Exemple : original et modifié → Exemple de sortie

Exemple : original et modifié

server:
  host: localhost
  port: 8080
  timeout: 30

Exemple : original et modifié 2

server:
  host: 0.0.0.0
  port: 8080
  timeout: 60
  retries: 3

Exemple de sortie

--- a/original
+++ b/modified
@@ -1,4 +1,5 @@
 server:
-  host: localhost
+  host: 0.0.0.0
   port: 8080
-  timeout: 30
+  timeout: 60
+  retries: 3

Quelles options et quels cas limites Comparer du texte prend en charge ?

Référence technique et options
ParamètreTypeValeur par défautComportement et cas limites
Granularité : ligneModePar défautDécoupe le texte sur les sauts de ligne. Exécution rapide O(ND), idéale pour le code, les configurations et les scripts.
Granularité : motModeOptionnelDécoupe les lignes en jetons de mots. Les lignes modifiées mettent en évidence les insertions et suppressions au niveau des mots.
Granularité : caractèreModeOptionnelDécoupe les chaînes en unités de caractères individuelles. Repère les fautes de frappe, les hachages et les chaînes base64.
Ignorer les espacesCommutateurfalseNormalise les espaces consécutifs et les tabulations pour que les ajustements d’indentation ne déclenchent pas de changements.
Ignorer la casseCommutateurfalseCompare le texte sans tenir compte de la casse, utile pour les requêtes SQL, les en-têtes HTTP ou les balises HTML.
Export diff unifiéFormatStandardExporte au format de différence unifiée standard, compatible avec git apply, patch(1) et les outils de révision.

Questions fréquentes

Comment fonctionne l’algorithme de diff de Myers ?

L’algorithme de diff de Myers trouve la plus courte séquence d’ajouts et de suppressions permettant de convertir la séquence A en séquence B. Il procède en explorant des chemins diagonaux à travers une grille d’édition, ce qui garantit mathématiquement la minimalité du diff obtenu.

Puis-je exporter un fichier patch de diff unifié ?

Oui. Cliquer sur « Exporter le patch unifié » produit un document patch unifié standard, avec les en-têtes '---' et '+++' et les plages de hunk '@@ -start,len +start,len @@', que l’on peut copier ou fournir directement aux utilitaires standard patch de UNIX ou git apply.

En quoi la comparaison au niveau des mots aide-t-elle les revues de code ?

Les diffs par ligne standard surlignent la ligne entière alors qu’un seul caractère ou un seul nom de variable a changé. Notre moteur de diff au niveau des mots compare les lignes modifiées jeton par jeton et ne surligne que les jetons précisément altérés à l’intérieur de la ligne.

Mes documents sont-ils enregistrés ou mis en cache sur un serveur ?

Non. ToolsByUs n’a ni serveur backend ni base de données. Tous les calculs de diff s’exécutent strictement dans votre navigateur. Aucun fichier, journal ou texte n’est jamais envoyé.

Quelle est la différence entre un diff par ligne, par mot et par caractère ?

Un diff par ligne marque toute la ligne comme modifiée dès qu’un seul de ses caractères diffère, ce qui convient à la prose mais pas à une ligne de code où une seule variable a été renommée. Le mode mot compare les jetons à l’intérieur de chaque ligne modifiée ; le mode caractère descend jusqu’aux lettres individuelles, et c’est lui qui repère un caractère inversé dans un identifiant ou une espace parasite dans une valeur de configuration.

Puis-je comparer ici du code confidentiel venant d’un dépôt privé ?

Oui, et vous pouvez le vérifier au lieu de devoir y croire sur parole. La comparaison s’exécute dans cet onglet ; ouvrez DevTools, passez au panneau Réseau, collez et comparez : aucune requête contenant votre texte n’apparaît. Une fois la page chargée, l’outil fonctionne même avec le réseau totalement déconnecté.