On Tuesday 14 December 2010, Bernhard Schiffner wrote:
nehmen wir an ich hätte einen Quelltext geschrieben. Ich kenne Filename und - größe, Hashsumme etc.
Jemand ändert nun den Dateinamen und ergänzt den Inhalt geringfügig. Name und Hash ändern sich.
Gibt es eine Möglichkeit die weitgehende Ähnlichkeit der beiden Dateien in irgendeinem Maß festzulegen? (Vergleich auf alle möglichen Substrings an allen möglichen Orten fällt wegen Aufwands aus.)
Naja, diff kommt nahe ran.
z.B. diff -bwBE -U 0 file1 file2 | wc -l
-bwBE ignoriert alle Typen von Whitespace (ich habe bestimmt zu viel ignoriert oder so)
-U 0 - macht ein unified diff ohne Context-Zeilen
Sollte dieser Befehl jetzt eine Zahl ausgeben, die signifikant kleiner ist als "wc -l <file1", dann ist es sehr wahrscheinlich dass file2 nicht sonderlich originell ist... ;-)
Sollte die Zahl jedoch wesentlich größer sein, dann sind die Dateien mindestens neu sortiert worden.
Reicht Dir diese Aussage? Oder wolltest Du noch irgendwas sinnvolles mit dem Ergebnis machen?
Mir fällt die git rename -Logik ein. Dazu finde ich aber weder Code noch Logik...
Siehe git sourcen? :-P
Konrad