Cómo funciona diff
Un diff encuentra el conjunto más pequeño de inserciones y eliminaciones que convierte una secuencia de líneas en otra. El algoritmo clásico (Myers, 1986, usado por git y GNU diff) encuentra la subsecuencia común más larga en un tiempo proporcional al número de diferencias, así que comparar dos archivos grandes casi idénticos es rápido. Esta página lo ejecuta primero sobre las líneas y luego sobre los caracteres de cada par cambiado, que es lo que hace que una edición de una palabra aparezca como una palabra resaltada en vez de dos líneas enteras.
Leer un diff unificado
--- old.txt
+++ new.txt
@@ -12,7 +12,8 @@
línea de contexto
-línea eliminada
+línea añadida
+otra línea añadida
línea de contexto La cabecera @@ da el número de línea y la longitud del fragmento en cada archivo. Las líneas que empiezan por un espacio son contexto sin cambios, - están solo en el archivo antiguo, + solo en el nuevo. patch -p0 < changes.patch lo aplica; git apply también funciona. Las líneas de contexto permiten a patch encontrar el sitio correcto aunque el archivo se haya desplazado.
Opciones
Ignorar espacios trata como iguales las líneas que solo difieren en espacios o tabuladores, lo que oculta el ruido de reformateo y muestra los cambios reales. Ignorar mayúsculas hace lo mismo con la capitalización. El diff unificado sigue mostrando las líneas originales; las opciones solo afectan a qué líneas cuentan como cambiadas.
Límites
Todo se ejecuta en tu navegador; unos miles de líneas se comparan en mucho menos de un segundo. Las entradas muy grandes (más de unas 2.000 líneas por lado con muchas diferencias) se rechazan para que la página siga respondiendo; para esas, usa diff o git diff --no-index a b en local.
Preguntas
¿Cómo comparo dos archivos?
Abre cada uno en un editor y copia el contenido en los dos campos. Para archivos en un servidor, diff -u antiguo nuevo o git diff --no-index antiguo nuevo producen el mismo formato unificado sin salir del terminal.
¿Qué significa el resaltado dentro de una línea?
Dentro de un par de líneas cambiadas, los caracteres que difieren están marcados; los que no cambian se muestran normales. Es un segundo diff ejecutado a nivel de carácter sobre ese par.
¿Puede comparar JSON o código?
Sí; compara texto. Para JSON, formatea primero ambos lados (lo hace el formateador JSON) para que cada clave quede en su propia línea y el diff muestre cambios reales en vez de una línea gigante.
¿Se sube mi texto?
No. La comparación se ejecuta en JavaScript en tu navegador. El sitio no tiene backend que lo reciba.