Ich habe nach einer Erklärung für einen Diff-Algorithmus gesucht, der funktioniert und effizient ist.
Das nächste, was ich bekommen habe, ist dieser Link zu RFC 3284 (aus mehreren Eric Sink-Blog-Posts), der in verständlichen Begriffen das Datenformat beschreibt, in dem die Diff-Ergebnisse gespeichert sind. Es wird jedoch überhaupt nicht erwähnt, wie ein Programm diese Ergebnisse erzielen würde, wenn es einen Unterschied macht.
Ich versuche dies aus persönlicher Neugier zu untersuchen, weil ich sicher bin, dass es bei der Implementierung eines Diff-Algorithmus Kompromisse geben muss, die manchmal ziemlich klar sind, wenn man sich Unterschiede ansieht und sich fragt, warum das Diff-Programm dies als Änderung gewählt hat stattdessen?"...
Wo finde ich eine Beschreibung eines effizienten Algorithmus, der am Ende VCDIFF ausgeben würde?
Übrigens, wenn Sie zufällig eine Beschreibung des tatsächlichen Algorithmus finden, der von SourceGears DiffMerge verwendet wird, wäre das sogar noch besser.
HINWEIS: Die längste gemeinsame Teilsequenz scheint nicht der von VCDIFF verwendete Algorithmus zu sein. Angesichts des von ihnen verwendeten Datenformats scheinen sie etwas Klügeres zu tun.