Un diff mínimo no siempre es único. Con líneas repetidas, el algoritmo puede emparejar una copia temprana o posterior y conservar el mismo máximo. Ambas secuencias necesitan igual número de altas y bajas. Una herramienta determinista debe elegir siempre una ruta, declarar la regla y no presentar la alineación como conocimiento de dónde el autor movió o editó contenido.

Las rutas iguales necesitan desempate

Con original `A, B` y revisión `B, A`, solo una línea puede conservarse en orden. Emparejar `A` produce un alta y una baja; emparejar `B` cuesta lo mismo. TextDiff consulta la tabla LCS y, si quitar o añadir deja igual longitud, consume primero la baja original. Por eso elimina `A`, conserva `B` y añade `A`. Repetir las entradas produce los mismos registros en cada ruta.

Un diff de líneas no demuestra movimiento

Una persona puede reconocer un párrafo movido, pero la primera versión no detecta bloques desplazados. Su lenguaje atómico es conservado, eliminado y añadido. Vincular un bloque retirado con otro parecido exigiría umbral, otra alineación y más decisiones ambiguas. TextDiff mantiene la promesa pequeña. Registros rojos y verdes adyacentes pueden leerse como cambio, pero el modelo sigue siendo altas y bajas para mantener exactos los recuentos y la copia.

Usa contexto cuando importa la alineación

Encabezados, llaves, líneas vacías y texto repetido son comunes. Una secuencia mínima puede alinear esos tokens lejos del lugar esperado. Lee las líneas sin cambio alrededor del bloque, compara números de ambas versiones y usa secciones menores si el documento repetido es difícil. No interpretes la alineación como prueba de autoría, copia, efecto legal o equivalencia semántica. Es una ruta sintáctica reproducible por dos secuencias ordenadas.