Cómo comparar textos y encontrar las diferencias

· 5 min de lectura

Encontrar lo que cambió entre dos versiones de un documento, archivo de configuración o pieza de código es una tarea común. Leer ambas versiones y detectar diferencias manualmente es lento y poco confiable, especialmente con textos largos. Un verificador de diferencias lo hace al instante y resalta cada cambio. El mismo algoritmo que impulsa el historial de commits de Git, la interfaz de revisión de pull-request de GitHub y el comando Unix diff subyace a cada herramienta de diferencia visual que ha usado.

Cómo comparar texto

  1. Pegue ambas versiones: ingrese el texto original a la izquierda y el texto modificado a la derecha.
  2. Revise los resaltados: las líneas agregadas se muestran en verde, las líneas eliminadas en rojo. Las líneas modificadas muestran tanto la versión antigua como la nueva.
  3. Exporte o copie: copie los resultados de diferencia o descargue un informe.

La comparación ocurre tan pronto como ambos paneles tienen texto. No hay un botón Comparar para hacer clic; las ediciones a cualquier lado vuelven a ejecutar la diferencia en tiempo real, lo cual es útil cuando está iterando en una corrección y desea ver el efecto inmediatamente.

Leyendo una diferencia

La salida de diferencia usa un sistema de colores simple:

Esta es la misma convención utilizada por Git, GitHub, GitLab, Bitbucket y cada sistema de control de versiones importante. Los colores no son arbitrarios: verde para adiciones y rojo para eliminaciones ha sido el estándar desde la década de 1970, cuando las primeras herramientas de diferencia visual (como el comando sdiff) se enviaron en Unix. Las herramientas modernas a veces agregan amarillo o naranja para "cambiado" (una línea que existe en ambas pero es diferente), pero rojo y verde siguen siendo las adiciones/eliminaciones universales.

Una breve historia de diff

El algoritmo diff fue publicado por primera vez por Douglas McIlroy en Bell Labs en 1976, construyendo sobre el refinamiento posterior de Eugene Myers (el algoritmo O(ND), 1986) que hizo diff lo suficientemente rápido para uso interactivo. El algoritmo original de McIlroy fue publicado con el lanzamiento de Unix V7 en 1979 y ha sido parte de cada sistema operativo tipo Unix desde entonces. El algoritmo de Myers es lo que impulsa las implementaciones modernas de diff: el diff de Git, la interfaz web de GitHub, cada GUI de diff desde Beyond Compare hasta VS Code.

El formato de diff visual lado a lado precede al algoritmo: se remonta a las convenciones de corrección manual en la publicación (mostrando dos columnas de texto con cambios marcados en el margen). El software de la década de 1970 simplemente automatizó lo que los editores habían estado haciendo en papel durante siglos. El formato "diff unificado" (el de los encabezados --- y +++ que ve en los archivos de parche) fue introducido en 1990 por GNU diff y ahora es el estándar de facto para compartir cambios por texto.

Cuándo es útil verificar diferencias

Diff basado en líneas vs basado en caracteres

El verificador de diferencias utiliza comparación basada en líneas, lo que significa que trata cada línea como la unidad más pequeña de diferencia. Si cambia una sola palabra en una línea, toda la línea se muestra como cambiada (la línea antigua en rojo, la línea nueva en verde) y debe detectar la diferencia a nivel de palabra usted mismo.

El diff basado en líneas es el estándar para archivos de código y configuración porque típicamente están orientados a líneas (una sentencia por línea, una opción de configuración por línea). Es rápido, predecible y coincide con cómo funcionan Git y cada herramienta de revisión de código.

Para comparación de prosa donde los cambios a nivel de línea son demasiado gruesos, algunas herramientas ofrecen diff a nivel de palabra o carácter que resalta solo las palabras cambiadas dentro de una línea. Eso es más preciso pero más difícil de leer para código. Si necesita diff a nivel de palabra, busque una herramienta etiquetada específicamente como "word diff" o "intra-line diff".

Privacidad y contenido confidencial

El verificador de diferencias se ejecuta completamente en su navegador. Ambos textos permanecen en su dispositivo; nada se carga. Esto importa porque el texto que más quiere comparar a menudo es confidencial: contratos en negociación, comunicados de prensa borradores, documentos de política internos, código fuente bajo un NDA. Las herramientas de diferencia en la nube (DiffChecker.com, JsonDiff.com, herramientas de fusión en línea) requieren cargar ambos textos a un servidor de terceros, que es precisamente lo que quiere evitar para contenido sensible. La diferencia basada en navegador no tiene ninguna de esas exposiciones.

La sesión también es sin estado: nada persiste después de cerrar la pestaña. Si necesita mantener un registro de la diferencia, copie la salida o tome una captura de pantalla antes de navegar fuera.

Errores comunes

Consejos

Preguntas frecuentes

¿El diff compara carácter por carácter?

Compara línea por línea, el mismo enfoque que Git y la mayoría de las herramientas profesionales de diff. Si cambia un solo carácter en una línea, la línea entera se resalta como modificada.

¿Hay un límite de tamaño?

No hay límite estricto, pero textos muy grandes (más de 10 000 líneas) pueden tardar un momento en procesarse, ya que la comparación se ejecuta íntegramente en tu navegador.

¿Puedo comparar archivos de código?

Sí. El diff funciona con cualquier texto, incluido el código fuente. El resaltado de sintaxis ayuda a leer más fácilmente los diffs de código.

¿Se envía mi texto a un servidor?

No. La comparación se hace en tu navegador. Tu texto nunca sale de tu dispositivo.