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
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.