DocumentosImágenesMediaHerramientas PDF

Comparar Textos

Compara versiones de código, contratos y artículos y visualiza cada cambio con colores.

Procesado en tu navegador — ningún texto se envía a servidores

Diferencias visibles en segundos

Diff línea y carácter

Visualiza cambios tanto a nivel de línea como a nivel de carácter dentro de cada línea modificada.

100% privado

La comparación ocurre en tu navegador. Tus textos nunca se envían a ningún servidor.

Algoritmo Myers

Implementación del algoritmo Myers diff O(n+d), el mismo que usa git internamente para sus diffs.

Instantáneo

El resultado aparece mientras pegas el texto, sin necesidad de hacer clic en convertir.

Tres pasos, sin complicaciones

1

Pega los dos textos

Introduce el texto original en el panel izquierdo y el texto modificado en el panel derecho. Pueden ser código, documentos o cualquier texto plano.

2

Visualiza las diferencias

Las líneas añadidas aparecen en verde, las eliminadas en rojo y las modificadas se muestran con el cambio exacto destacado a nivel de carácter.

3

Analiza los cambios

Navega entre las diferencias con los botones de anterior/siguiente. Consulta el resumen de líneas añadidas, eliminadas y sin cambios.

¿Tienes dudas?

Los algoritmos de diff modernos se basan en el cálculo de la LCS (Longest Common Subsequence, subsecuencia común más larga). Dado dos textos A y B, el algoritmo encuentra la subsecuencia más larga de líneas que aparece en ambos en el mismo orden. Las líneas de A que no forman parte de la LCS se marcan como eliminadas (rojo) y las de B que no forman parte se marcan como añadidas (verde). El algoritmo de Hunt-McIlroy (1975), usado en el comando Unix diff original, formalizó este enfoque.

Verde indica líneas añadidas en el texto nuevo que no existían en el original. Rojo indica líneas eliminadas que estaban en el original y ya no están. Amarillo o sin color indica líneas sin cambios (contexto). En el modo de diff a nivel de carácter, dentro de una línea modificada se destacan en verde oscuro los caracteres nuevos y en rojo oscuro los eliminados, permitiendo ver el cambio exacto dentro de la línea.

El diff línea a línea trata cada línea como una unidad atómica: una línea está o no está, igual que hace el comando git diff. Es ideal para código donde los cambios son entre líneas completas. El diff carácter a carácter (también llamado word diff o char diff) opera dentro de cada línea modificada y muestra exactamente qué caracteres o palabras cambiaron. Es más útil para prosa, contratos o textos donde los cambios son ediciones menores dentro de párrafos.

El diff es fundamental en control de versiones (git diff muestra cambios antes de un commit), revisión de código (pull requests en GitHub muestran un diff), comparación de documentos legales (contratos, términos de servicio entre versiones), periodismo y fact-checking (comparar versiones de comunicados), y depuración (comparar la salida esperada con la real en tests). También se usa en parches de software: los archivos .patch son diffs unificados que git apply puede aplicar a un repositorio.

LCS (Longest Common Subsequence) es el problema de encontrar la subsecuencia más larga que dos secuencias tienen en común sin reordenar los elementos. Para el diff de texto, las secuencias son las líneas del texto. La LCS representa las líneas que no cambiaron; todo lo que no está en la LCS es un cambio. El algoritmo dinámico estándar para LCS tiene complejidad O(n×m) donde n y m son las longitudes de las dos secuencias, aunque algoritmos más eficientes como Myers diff (1986) logran O(n+d) donde d es el número de diferencias.

Cómo funciona el diff de texto: del comando Unix a git

El comando diff fue introducido en Unix por Doug McIlroy en 1974 y se convirtió en una herramienta fundamental del ecosistema Unix. Su algoritmo original, formalizado por Hunt y McIlroy en el paper 'An Algorithm for Differential File Comparison' (1975), calcula la subsecuencia común más larga (LCS) entre dos archivos y expresa las diferencias como un conjunto mínimo de operaciones de inserción y eliminación. Este principio matemático sigue siendo la base de todas las herramientas de diff modernas.

En 1986, Eugene Myers publicó un algoritmo mejorado que reduce la complejidad a O(n+d) donde d es el número de diferencias, lo que lo hace significativamente más rápido cuando los archivos son similares (pocas diferencias). Este es el algoritmo que Git usa internamente para git diff, git log -p, y las vistas de pull request en GitHub y GitLab. El formato de salida unified diff (con líneas precedidas por +, -, y espacio) se ha convertido en el estándar universal para intercambiar parches entre proyectos de software.

Más allá del código, el diff tiene aplicaciones en periodismo de datos (comparar versiones de documentos oficiales), derecho (detectar cambios entre versiones de contratos), y ciencia (comparar secuencias genómicas). Convertir.ai implementa el algoritmo Myers diff completamente en el navegador, con visualización a nivel de línea y de carácter, sin enviar los textos a ningún servidor. Esto es especialmente relevante para comparar documentos confidenciales como contratos, código propietario o datos sensibles.