Compara dos bloques de texto y observa las diferencias.
+3 añadidas-2 eliminadas
-function greet(name) {
+function greet(name, greeting = "Hello") {
- console.log("Hello " + name);
+ console.log(greeting + " " + name);
}
greet("World");
+greet("Alice", "Hi");
Todos los cálculos se realizan localmente en tu navegador. No se envía ningún dato al servidor.
Los resultados tienen carácter informativo. Contrástalos con otras fuentes.
Cómo funciona la comparación de textos
Un diff busca el conjunto mínimo de inserciones y borrados que convierte un texto en otro. No detecta que una línea «se movió» o «cambió»: eso son interpretaciones que un visor superpone sobre un borrado seguido de una inserción.
Cómo funciona
- Calcula la subsecuencia común más larga de ambas entradas y señala todo lo que queda fuera como añadido o eliminado.
- Trabaja línea a línea por defecto, lo que hace legibles los diffs de código e inútiles los de prosa reajustada.
- Marca una línea modificada como un borrado más una inserción, porque eso es exactamente en el plano del algoritmo.
subsecuencia común más larga (LCS) líneas solo a la izquierda → borrados líneas solo a la derecha → inserciones líneas en la LCS → sin cambios similitud ≈ 2 × longitud LCS / (líneas izq. + líneas der.)
Ejemplo resuelto
Un archivo de tres líneas con una editada y otra añadida.
- izquierda: alpha / beta / gamma
- derecha: alpha / BETA / gamma / delta
- LCS = alpha, gamma (2 líneas)
- beta → borrado, BETA → inserción, delta → inserción
Se informan tres cambios, no dos: la edición de beta cuenta como un borrado más una inserción. Similitud = 2 × 2 / (3 + 4) = 57%.
Cómo leer el resultado
- Un párrafo entero reajustado a otro ancho produce un diff en el que ha cambiado cada línea, aunque apenas haya cambiado una palabra. Cambia a un diff por palabras para la prosa, o compara la fuente antes del ajuste.
- Los espacios finales y las diferencias de fin de línea generan cambios fantasma. Si un archivo completo aparece modificado sin diferencia visible, revisa primero CRLF frente a LF.
- La salida depende de a qué lado llames «original». Intercambiar las entradas convierte cada inserción en un borrado, lo que importa al leer una revisión.
- Esto se ejecuta en tu navegador, así que pegar aquí un archivo confidencial no lo sube. No ocurre lo mismo con todas las herramientas de diff en línea.
Preguntas frecuentes
- ¿Por qué mi diff marca todo el archivo como cambiado?
- Casi siempre por los finales de línea o la indentación. Un archivo guardado en Windows y editado en Linux difiere de forma invisible en cada línea. Activa la comparación que ignora espacios, o normaliza antes los finales de línea.
- ¿Puede mostrar que moví un bloque de código?
- No directamente: un movimiento es un borrado en un sitio y una inserción en otro, y el diff estándar lo informa así. Algunas herramientas detectan movimientos como un paso posterior sobre esa salida en bruto.