Ce que fait cet outil
Deux textes entrent, un diff unifié sort.
version: 1 version: 2
name: demo name: demo
port: 8080 port: 8080
debug: true
@@ -1,3 +1,4 @@
-version: 1
+version: 2
name: demo
port: 8080
+debug: true
La comparaison emploie l’algorithme de Myers — celui derrière git diff — si bien que le résultat est le plus petit ensemble de changements plutôt que le premier trouvé. Deux textes identiques donnent un résultat vide, ce qui est la réponse que vous vouliez.
Lire la sortie
@@ -1,3 +1,4 @@— où se situe le changement : trois lignes à partir de la ligne 1 à gauche, quatre à partir de la ligne 1 à droite.-— la ligne est dans le premier texte et pas dans le second.+— la ligne est dans le second et pas dans le premier.- Une espace en tête — la ligne est inchangée, montrée pour le contexte. Trois lignes de chaque côté, comme le fait Git par défaut.
Quand deux lignes d’apparence identique diffèrent
-a
+a
Rien à voir, et pourtant ce n’est pas la même ligne. Les coupables habituels : une espace en fin de ligne, une tabulation contre des espaces, et une fin de ligne Windows \r\n contre un \n Unix — un fichier édité sur deux machines les collectionne toutes les trois. La comparaison lit les caractères exacts : elle signale donc une différence qu’elle ne peut pas vous montrer.
cat -A sous Unix affiche un $ en fin de ligne et un ^M pour un retour chariot ; la plupart des éditeurs ont un interrupteur « afficher les espaces ». L’un ou l’autre rend la différence visible en une seconde.
Ce qu’il ne fait pas
- La mise en évidence au mot près. Un caractère changé marque la ligne entière.
- La détection de renommage ou de déplacement. Un bloc déplacé se lit comme une suppression et un ajout, pas comme un déplacement.
- Une fusion à trois branches. Il compare deux textes ; il ne les réconcilie pas.
- Le marqueur
\ No newline at end of file. Un texte qui finit par un saut de ligne contre un autre qui n’en a pas apparaît comme une ligne vide ajoutée, ce qui est la même information sous une forme plus simple.
Confidentiel par conception
Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.