Un diff por líneas no lee como una persona. Convierte cada texto normalizado en una secuencia ordenada de líneas completas, encuentra la secuencia común más larga y explica el resto como eliminaciones o adiciones. Es un mapa preciso para código, notas y documentos ordinarios, pero no decide si dos frases diferentes significan lo mismo.

La línea completa es la unidad

TextDiff normaliza CRLF y retornos aislados a LF para que finales Windows y Unix no generen cambios falsos. Cada token guarda los caracteres visibles de una línea y si le sigue LF. Ese dato final importa: `alpha` sin salto y `alpha` con salto final son estados distintos. El texto vacío no contiene líneas; un solo salto contiene una línea vacía terminada. Estas reglas hacen reproducibles los recuentos.

El eje es una subsecuencia común más larga

Una subsecuencia conserva el orden y puede saltar elementos. Si ambas versiones tienen `alpha` antes de `gamma`, forman un eje común aunque aparezca `delta` entre ellas. La programación dinámica calcula el máximo de tokens coincidentes desde cada par de posiciones. La reconstrucción convierte coincidencias en líneas conservadas, saltos del original en bajas y saltos de la revisión en altas. Es una secuencia mínima de inserciones y eliminaciones, no una afirmación sobre la intención de reemplazo del autor.

El trabajo exacto está limitado y el significado queda fuera

Dos archivos grandes iguales son baratos tras quitar el prefijo común. Dos archivos sin relación exigen una tabla grande, por eso TextDiff se detiene si la parte distinta supera ocho millones de pares. Pide secciones menores en vez de cambiar de algoritmo en silencio. El resultado describe identidad de líneas. La similitud es dos veces las líneas conservadas dividido por ambos totales; no mide significado, plagio, autoría ni aprobación de una revisión importante.