G
Gist
Gast
Hi,
ich hab heute in der Vorlesung über den Algorithmus von Myers gehört, der wohl zum Unterscheiden von Änderungen u.a. auch in SVN verwendet wird.
Der Algorithmus vergleicht ja Zeichenketten und ermittelt die kürzeste Varianten an Delete/Insert Operationen, um aus den ursprünglichen String den Zielstring zu machen.
Das ganze hab ich so weit auch verstanden, nicht weiter schwer gewesen. Was ich aber im Bezug auf Source-Files nicht verstehe, ist die Handhabung von Zeilenumbrüchen. Sobald ich eine Zeile hinzufügen oder löschen kann ich ja nicht länger die 1:1 Beziehung zwischen der Linie aus dem Quell-Dokument mit der Linie aus dem neuen Dokument herstellen.
Sobald ich also löschen/einfüge verschiebt sich alles und dementsprechend würde ab einer gelöschen/hinzugefügten Linie alles als geändert erscheinen.
Tut es aber in der praktischen Anwendung nicht, wieso? Wie wird die Beziehung von Linien hergestellt? Berechnet man einen Hashwert für eine Zeile und guckt ob man diese weiter unten/oben wiederfindet, oder wie funktioniert das?
Danke für Antwort.
ich hab heute in der Vorlesung über den Algorithmus von Myers gehört, der wohl zum Unterscheiden von Änderungen u.a. auch in SVN verwendet wird.
Der Algorithmus vergleicht ja Zeichenketten und ermittelt die kürzeste Varianten an Delete/Insert Operationen, um aus den ursprünglichen String den Zielstring zu machen.
Das ganze hab ich so weit auch verstanden, nicht weiter schwer gewesen. Was ich aber im Bezug auf Source-Files nicht verstehe, ist die Handhabung von Zeilenumbrüchen. Sobald ich eine Zeile hinzufügen oder löschen kann ich ja nicht länger die 1:1 Beziehung zwischen der Linie aus dem Quell-Dokument mit der Linie aus dem neuen Dokument herstellen.
Sobald ich also löschen/einfüge verschiebt sich alles und dementsprechend würde ab einer gelöschen/hinzugefügten Linie alles als geändert erscheinen.
Tut es aber in der praktischen Anwendung nicht, wieso? Wie wird die Beziehung von Linien hergestellt? Berechnet man einen Hashwert für eine Zeile und guckt ob man diese weiter unten/oben wiederfindet, oder wie funktioniert das?
Danke für Antwort.