Zashify

Flujos de trabajo

Cómo comparar dos textos y ver exactamente qué cambió

Una diferencia entre textos es un argumento línea por línea sobre qué es lo mismo. Aquí está cómo decide la comparación y lo único que no puede decirte.

Zahid SheerazLectura de 4 min

Dos versiones del mismo texto, y necesitas saber qué cambió entre ellas. La reescritura de tu párrafo que te mandó un compañero. Un archivo de configuración antes y después de una edición. Un contrato frente a la versión que te mandaron la semana pasada. Los cambios siempre son pequeños, y siempre son exactamente la parte que necesitas ver.

Qué hace realmente una diferencia entre textos

La herramienta para comparar textos toma dos bloques de texto y calcula la diferencia entre ellos, línea por línea, y luego frase por frase dentro de las líneas que cambiaron.

Hay dos niveles, y el orden importa:

  1. Nivel de línea. La herramienta encuentra las líneas idénticas, las que se quitaron y las que se añadieron. Lo hace calculando la subsecuencia común más larga: la secuencia más larga de líneas que aparece en ambos textos, en el mismo orden.
  2. Nivel de frase. Dentro de una línea que se quitó y una línea que se añadió, se resaltan los caracteres que difieren.

Ese orden es el que quieres. "Estas dos líneas cambiaron" va primero y "aquí están exactamente las palabras que difieren dentro de ellas" segundo. Una herramienta que solo hiciera el nivel de caracteres te ahogaría en ruido; una que solo hiciera el nivel de línea te dejaría buscando la palabra que cambió.

Por qué importa la "subsecuencia común más larga"

Este es el trozo del algoritmo que hace que la salida sea legible, y explica la forma del resultado.

La subsecuencia común más larga es la secuencia más larga de líneas que aparece en ambos textos en el mismo orden. Todo lo demás es una eliminación o una adición.

El efecto práctico: un bloque que se movió se muestra como un movimiento, no como un borrado más una inserción sin relación. Si moviste un párrafo del final de un documento al medio, la diferencia te muestra el párrafo aterrizando en su nueva posición, con las líneas de alrededor emparejadas. Sin la restricción de orden, cada línea después del movimiento se reportaría como cambiada.

Esa es la diferencia entre una diferencia que se puede leer y una que dice "todo cambió".

Cómo se ve la salida

  • Las líneas sin cambios se muestran tal cual, para que mantengas el rumbo.
  • Las líneas eliminadas se marcan como eliminadas.
  • Las líneas añadidas se marcan como añadidas.
  • Las líneas cambiadas se marcan como ambas, con la frase que difiere resaltada dentro de ellas.

Para un documento donde alguien cambió tres palabras en un párrafo de cuarenta, ves una línea marcada, con tres palabras iluminadas dentro, en vez de cuarenta líneas marcadas como distintas.

Lo único que no puede decirte

Una diferencia muestra qué es distinto, no qué es correcto.

Si una línea cambió de "el cliente pagará en 30 días" a "el cliente pagará en 90 días", la diferencia resaltará 30 y 90 con el mismo peso. No tiene ni idea de cuál es el correcto, cuál estaba autorizado o cuál es un error. Ni ninguna otra herramienta de diferencia la tiene, y una que lo pretendiera te estaría mintiendo.

Lee los cambios resaltados, no solo la cuenta de ellos. El número de cambios es una pista; los cambios son la respuesta.

Usos prácticos

  • Revisar una reescritura. Pega el original y la versión nueva, y la diferencia te muestra exactamente lo que se tocó, incluido el pequeño cambio que nadie mencionó en el resumen.
  • Comparar configuraciones. Un archivo de ajustes antes y después de una edición, donde la única línea que cambió es la que lo rompió.
  • Comprobar una traducción frente al original. La estructura de las líneas se mantiene y cambian las palabras, así que la diferencia se lee como una edición a nivel de frase en lugar de como un muro rojo.
  • Dos versiones de un contrato. Ver qué se alteró entre el borrador y la copia que estás a punto de firmar.

Esa última merece hacerse bien. Una diferencia hace visible un cambio no autorizado de una forma en que leer ambas versiones una al lado de la otra no lo hace.

Lo que no hace

  • No ignora los espacios en blanco. Una línea que solo difiere en un espacio al final es una línea distinta. Eso es casi siempre lo que quieres, y ocasionalmente no.
  • No ignora las mayúsculas. Apple y apple son líneas distintas. Una diferencia que ignore mayúsculas escondería cambios reales.
  • No hace nada inteligente con el significado. Compara caracteres. "Colour" y "color" son dos palabras distintas para ella.
  • No fusiona ni arregla nada. Muestra; tú decides.

Una lista corta

  • Pega el texto VIEJO a la izquierda y el NUEVO a la derecha. Funciona de cualquier forma, pero el orden convencional se lee mejor.
  • Mira primero las líneas cambiadas y luego los resaltados de frase dentro de ellas.
  • Un párrafo movido se muestra como un movimiento: eso es el algoritmo funcionando, no un error.
  • Lee los cambios, no los cuentes. La herramienta no puede decirte cuál de los dos lados es correcto.
  • Los espacios en blanco y las mayúsculas cuentan como diferencias. Casi siempre es lo correcto.
  • Los archivos muy grandes se omiten en lugar de congelar la página. La comparación es local, así que nada se sube.

Preguntas frecuentes

¿Es una comparación por palabras o por líneas?

Primero por líneas: encuentra las líneas que se añadieron o se quitaron, y luego resalta la diferencia de frase dentro de cada línea cambiada. Ese es el orden que quiere un lector: qué se movió y, después, qué cambió dentro.

¿Cómo decide qué líneas son las mismas?

Con una subsecuencia común más larga, que mantiene el orden de ambos textos. Por eso un párrafo movido se muestra como un movimiento, y no como un borrado más una adición sin relación.

¿Funciona con documentos largos?

Sí; el rendimiento se mantiene bien hasta decenas de miles de líneas en navegadores modernos. Con archivos muy grandes la comparación se omite en lugar de congelar la página, así que en un archivo enorme recibes un mensaje en vez de un resultado.

¿Se suben los dos textos?

No. La comparación ocurre en tu navegador, así que ninguno de los textos se envía a ningún sitio.

Prueba estas herramientas

  • Comparar textosCompara dos bloques de texto y ve exactamente qué ha cambiado.

← Volver al blog