Diff de texto

Compara dos textos y mira exactamente qué cambió, en vista lado a lado o unificada, y a nivel de línea o de palabra.

Toda la comparación se realiza localmente en tu navegador. Nada sale de tu dispositivo.

Cómo funciona el diff

Comparar dos textos es un problema clásico de la informática: encontrar el conjunto mínimo de ediciones que convierte uno en otro. Esta herramienta lo resuelve con el algoritmo de la subsecuencia común más larga (LCS): encuentra la secuencia más larga de líneas (o palabras) compartida por ambos textos en el mismo orden, y todo lo demás se reporta como adición o eliminación. Sin servidor, sin red: solo tus dos textos y un poco de programación dinámica en tu navegador.

LCS algorithm
Dadas dos secuencias, LCS pregunta: ¿cuál es la subsecuencia más larga de elementos presentes en ambas, en el mismo orden? Se resuelve con programación dinámica en O(n·m): una tabla donde cada celda guarda la mejor respuesta para los prefijos hasta ese punto. Recorriendo la tabla hacia atrás se obtiene la alineación — las líneas iguales coinciden y el resto son adiciones y eliminaciones. El famoso utilitario diff de Unix usa técnicas estrechamente relacionadas.
Nivel de línea vs nivel de palabra
El nivel de línea ejecuta una pasada de LCS sobre líneas completas: rápido y legible, pero una edición de una sola palabra en una línea larga se muestra como «cambió toda la línea». El nivel de palabra añade una segunda pasada: los pares de líneas cambiadas se vuelven a comparar palabra por palabra, de modo que el resaltado señala exactamente qué palabras se movieron. Piensa en él como un zoom sobre las líneas que la primera pasada marcó.
Usos típicos
Revisar cambios de código entre dos versiones, comparar borradores de un documento, detectar errores tipográficos entre dos copias de texto, o verificar que un cambio de archivo de configuración hizo exactamente lo que pretendías. Los contadores (líneas añadidas / líneas eliminadas) dan una estimación rápida del tamaño del cambio antes de leer el detalle.

Preguntas frecuentes

¿Qué algoritmo usa el diff?

El núcleo es el clásico algoritmo de la subsecuencia común más larga (LCS). Los dos textos se dividen en líneas, y el LCS encuentra el mayor conjunto de líneas que aparecen en ambos, en el mismo orden. Las líneas del original que no están en el modificado son eliminaciones; las del modificado que no están en el original son adiciones. La programación dinámica lo calcula en O(n·m).

¿Cuál es la diferencia entre el nivel de línea y el de palabra?

El nivel de línea trata cada línea entera como una unidad: si algún carácter de una línea cambió, la línea completa se marca como eliminada (rojo) y el reemplazo como añadido (verde). El nivel de palabra primero alinea las líneas como de costumbre y luego vuelve a comparar los pares de líneas cambiadas palabra por palabra con una segunda pasada de LCS, de modo que ves exactamente qué palabras se insertaron o eliminaron dentro de una línea.

¿Funciona con código?

Sí. Pega dos versiones de una función, un archivo de configuración o el antes/después de un commit y la herramienta muestra las líneas cambiadas. El nivel de palabra es especialmente útil para el código porque señala el token exacto que cambió en una línea que en el resto es larga.

¿Qué significan los colores?

El fondo verde marca contenido que se añadió en el texto modificado; el fondo rojo marca contenido que se eliminó del original. El contenido sin cambios no tiene fondo. Los contadores sobre la vista muestran cuántas líneas se añadieron y eliminaron.

¿Se envía mi texto a algún sitio?

No. Ambos textos y todo el cálculo del LCS se ejecutan como JavaScript en la pestaña de tu navegador. No se sube, transmite ni almacena nada: cierra la página y desaparece.