He estado buscando una locura por una explicación de un algoritmo diff que funciona y es eficiente.
Lo más cercano que obtuve es este enlace a RFC 3284 (de varias publicaciones de blog de Eric Sink), que describe en términos perfectamente comprensibles el formato de datos en el que se almacenan los resultados de diferencias. Sin embargo, no se menciona en absoluto cómo un programa alcanzaría estos resultados al hacer una diferencia.
Estoy tratando de investigar esto por curiosidad personal, porque estoy seguro de que debe haber compensaciones al implementar un algoritmo diff, que a veces son bastante claras cuando miras diffs y te preguntas "¿por qué el programa diff eligió esto como un cambio? ¿en lugar de eso?"...
¿Dónde puedo encontrar una descripción de un algoritmo eficiente que termine generando VCDIFF?
Por cierto, si encuentra una descripción del algoritmo real utilizado por DiffMerge de SourceGear, sería aún mejor.
NOTA: la subsecuencia común más larga no parece ser el algoritmo utilizado por VCDIFF, parece que están haciendo algo más inteligente, dado el formato de datos que usan.