Sono sembrato pazzo per una spiegazione di un algoritmo diff che funziona ed è efficiente.
Il più vicino che ho ottenuto è questo link a RFC 3284 (da diversi post sul blog di Eric Sink), che descrive in termini perfettamente comprensibili il formato dei dati in cui sono memorizzati i risultati del diff. Tuttavia, non ha alcun riferimento al modo in cui un programma raggiungerebbe questi risultati facendo un diff.
Sto cercando di ricercare questo per curiosità personale, perché sono sicuro che ci devono essere dei compromessi quando si implementa un algoritmo diff, che sono abbastanza chiari a volte quando si guardano le differenze e ci si chiede "perché il programma diff ha scelto questo come un cambiamento al posto di quello?"...
Dove posso trovare una descrizione di un algoritmo efficiente che finirebbe per produrre VCDIFF?
A proposito, se ti capita di trovare una descrizione dell'algoritmo effettivo utilizzato da DiffMerge di SourceGear, sarebbe ancora meglio.
NOTA: la sottosequenza comune più lunga non sembra essere l'algoritmo utilizzato da VCDIFF, sembra che stiano facendo qualcosa di più intelligente, dato il formato dei dati che usano.