Outils Malins

Comparateur de texte — diff ligne par ligne

Comparez deux versions d'un texte et visualisez les ajouts (+) et suppressions (−). Algorithme LCS, 100 % local, aucune donnée transmise.

Comparateur de texte (diff)

Différences ligne par ligne entre deux textes, algorithme LCS (Longest Common Subsequence).

Cas d'usage

  • Code review rapide d'un fichier sans passer par git.
  • Comparaison de contrats ou conditions générales entre deux versions.
  • Détection de modifications dans un texte légal, statuts, etc.
  • Vérification d'une copie : « ce texte a-t-il été altéré ? ».
  • Avant / après refactoring de configuration JSON, YAML, .env.

Algorithme LCS

Le diff utilise la plus longue sous-séquence commune(Longest Common Subsequence) — algorithme classique de programmation dynamique. Principe :

  1. Construire une matrice dp[i][j] = LCS des i premières lignes de A et j premières lignes de B.
  2. Si A[i] = B[j], dp[i][j] = dp[i−1][j−1] + 1.
  3. Sinon, dp[i][j] = max(dp[i−1][j], dp[i][j−1]).
  4. Backtracking depuis dp[n][m] pour reconstituer les opérations (égalité, ajout, suppression).

Complexité : O(n × m) en temps et en espace. Adapté à des textes de quelques milliers de lignes. Au-delà, des algorithmes plus avancés (Myers, Patience) sont préférables — c'est ce qu'utilise git.

Types de diff

TypeDescription
LigneCe que fait cet outil. Standard git.
Motgit diff --word-diff. Granularité plus fine.
CaractèreIdéal pour textes courts (titres, descriptions).
SémantiqueDiff de structure (ex : XML, JSON par clé).

Confidentialité

Cet outil exécute le diff entièrement dans votre navigateur. Aucune donnée n'est envoyée à un serveur. Idéal pour comparer du contenu sensible : code source privé, contrats, NDA, informations confidentielles.

Questions fréquentes

Quel granularité ?

Ligne par ligne — adapté à du code ou texte structuré.

Algorithme ?

LCS (Longest Common Subsequence), O(n×m).

Mes données ?

Restent dans votre navigateur, aucun envoi.

Limite de taille ?

Quelques milliers de lignes. Au-delà, préférez git diff.

Diff de mots ?

Pas ici. Voir git diff --word-diff.

Outils complémentaires

Sources

  • Hirschberg DS. A linear space algorithm for computing maximal common subsequences. CACM 1975.
  • Myers EW. An O(ND) Difference Algorithm and Its Variations. Algorithmica 1986.