Comparación de diferencias de texto (Diff)

Compara dos bloques de texto línea por línea y muestra en color las líneas añadidas y eliminadas. Útil para revisar cambios en archivos de configuración, corregir documentos o hacer revisión de código sin Git. Todo el cálculo se realiza en el navegador; el contenido introducido nunca se envía a un servidor.

Consejos

  • Pega la versión anterior y la posterior de un archivo de configuración (.env, YAML, JSON, etc.) para ver de inmediato qué líneas se añadieron o eliminaron.
  • Incluso sin tener Git instalado, puedes hacer una revisión de código sencilla o corregir un documento con solo copiar y pegar dos versiones.
  • Una línea que simplemente cambió de posición se detecta como una eliminación más una adición, no como un "movimiento"; tenlo en cuenta al interpretar el resultado.
  • Los espacios, saltos de línea y mayúsculas/minúsculas se comparan de forma estricta, por lo que una línea que solo cambió su sangría también aparecerá como modificada.
  • Al comparar textos largos, poner un párrafo por línea antes de pegarlo facilita ver las diferencias por párrafo de un vistazo.

Preguntas frecuentes

Sirve para detectar cambios línea por línea en archivos de configuración o documentos, revisar código sin usar Git, o comprobar las revisiones de un contrato o unos términos de servicio; en general, cualquier situación donde necesites ver qué cambió entre dos versiones de texto plano.

La herramienta de diferencias de CSV compara datos tabulares emparejando filas por una columna clave y comparando celda por celda. Esta herramienta, en cambio, compara texto libre línea por línea sin ningún concepto de columnas, por lo que es más adecuada para archivos de configuración o prosa que para tablas.

La herramienta de diferencias de JSON analiza la estructura del JSON (objetos y arreglos) y compara por clave. Esta herramienta no analiza ninguna estructura: simplemente trata cada línea como texto, por lo que funciona con cualquier texto plano, no solo JSON.

Las líneas reordenadas no se detectan como un "movimiento". En su lugar, aparecen como una eliminación en la posición antigua y una adición en la nueva posición. Es el mismo comportamiento que produce el comando diff de Git y la mayoría de los algoritmos de diferencias por línea.

No. Todo el cálculo de las diferencias se ejecuta en JavaScript dentro de tu navegador, y el texto introducido nunca se transmite a un servidor, por lo que puedes usarlo con tranquilidad incluso con contenido sensible.
ツールくん

A propósito — cómo el LCS (subsecuencia común más larga) calcula las diferencias de texto

El algoritmo más conocido para detectar diferencias entre dos textos es el "algoritmo de diferencias de Myers", publicado en la década de 1970 por el científico informático Eugene Myers, de IBM. El comando `diff` de los principales sistemas de control de versiones, como Git y SVN, se basa en esta familia de algoritmos, detectando de forma eficiente las líneas añadidas y eliminadas. Esta herramienta sigue la misma idea, calculando la subsecuencia común más larga (LCS) para reducir el resultado a un conjunto mínimo de cambios.

La subsecuencia común más larga (LCS) es la secuencia más larga que aparece, en el mismo orden, en ambas secuencias comparadas; en este caso, la secuencia de líneas. La diferencia entre dos textos se obtiene tratando toda línea que no forme parte de este LCS como "eliminada" o "añadida"; cuanto más larga sea la LCS, menos cambios se mostrarán en pantalla. Una técnica llamada programación dinámica (DP) hace posible este cálculo incluso para textos con muchas líneas.

Los algoritmos de diferencias tienen una limitación conocida: cuando una línea simplemente se mueve a otra posición, la mayoría de las implementaciones no lo detectan como un "movimiento", sino que lo muestran como una eliminación junto con una adición. Por eso, al comparar textos cuyo orden de líneas se ha reorganizado mucho, la diferencia puede parecer mayor de lo que realmente es el cambio. Conocer esta particularidad ayuda a interpretar los resultados sin confusiones.

→ Ver todas las curiosidades