Dateivergleich ist zu übermütig

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
rellek
Member
Member
Posts: 175
Joined: 2003-10-15, 14:07 UTC
Contact:

Dateivergleich ist zu übermütig

Post by *rellek »

Hallo,

gleich vorweg: nicht dass das schlimm wäre, aber der Dateivergleich scheint mir etwas zu gierig zu sein.

Schaut her:
http://www.wewota.de/unterschied2.png

In der stat-Funktion sind eigentlich nur die Kommentare weg (und aus vb wurde bb), aber wegen dem "text" sieht der Vergleich das nicht.

Ist mir grad so aufgefallen. Aber wie gesagt, so wirklich dramatisch ists für mich nicht :)
#167372 Personal Licence
Windows 7 Professional + alle Hotfixes

www.rellek.org
User avatar
Stance
Power Member
Power Member
Posts: 1079
Joined: 2005-03-29, 06:26 UTC

Post by *Stance »

Hallo rellek
Es ist leider unklar, was der Dateivergleich anders machen sollte.
Für mich sieht es richtig aus. Sage doch mal bitte genauer, zB mit Zeilennummern, was Du anders erwartet hast.
User avatar
Samuel
Power Member
Power Member
Posts: 1930
Joined: 2003-08-29, 15:44 UTC
Location: Germany, Brandenburg an der Havel
Contact:

Post by *Samuel »

Seh ich auch wie rellek.
Wenn die übernächste oder eine der folgenden 10 Zeilen rechts besser auf die nächste Zeile links passt, dann sollten diese beiden Zeilen matchen und die Zeile dazwischen als rechts hinzugefügt erkannt werden.

Normalerweise macht TC das, wenn es sich um 100% identische Zeilen handelt. Aber in dem Fall unterscheiden sie sich. ("bbform" und "vbform")

Vielleicht sollten die Zeilen Paarweise auf Ähnlichkeit überprüft werden.

2Stance
Zeile 26 links soll Zeile 36 rechts (statt 35) matchen.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50746
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Durch den einen Unterschied (bbform vs. vbform) sind die 2 Zeilen halt unterschiedlich, deshalb kann TC sie nicht automatisch zueinander zuordnen. Sie können versuchen, die 2 Zeilen zu markieren, und via Rechtsklick "Synchronisiere Vergleich ab hier" wählen, um die beiden Zeilen miteinander zu vergleichen.
Author of Total Commander
https://www.ghisler.com
t34
Junior Member
Junior Member
Posts: 2
Joined: 2003-11-19, 16:17 UTC

Post by *t34 »

Welche Zeile besser passt, könnte man mit der Levenshtein-Distanz feststellen.

t34
User avatar
Samuel
Power Member
Power Member
Posts: 1930
Joined: 2003-08-29, 15:44 UTC
Location: Germany, Brandenburg an der Havel
Contact:

Post by *Samuel »

2rellek
Hast du eigentlich mal Winmerge versucht? Vielleicht schaffst du es damit.

2t34
Wäre ne Idee. Könnte vielleicht länger dauern...
Ich ärgere mich auch manchmal über Winmerge und Co. Die sollen ruhig länger brauchen, aber dann ein "unfehlbares" Ergebnis produzieren.
algol
Senior Member
Senior Member
Posts: 456
Joined: 2007-07-31, 14:45 UTC

Post by *algol »

t34 wrote:Welche Zeile besser passt, könnte man mit der Levenshtein-Distanz feststellen.
Spitzen-Idee! Die Frage ist halt, wie von Samuel bereits angesprochen, in welchem Nachbarschaftsbereich nach einem optimalen L.-fit gesucht werden soll.

Denn bei grossen Dateien und L.-fit jeweils für den gesamten Restbereich der Datei wäre das vom Rechenaufwand her absolut prohibitiv.

Das liesse sich aber sicher noch intelligenter einschränken. Beim grossen Schwesterprogramm "Examdiff Pro" lässt sich beispielsweise an der Blockgrösse für den Vergleich noch "herumschrauben". Je kleiner die Blockgrösse, desto besser synchronisiert, desto länger aber die Rechenzeit. Nur, eine wirklich perfekte Synchronisation lässt sich auch damit oft nicht erzielen.

Aber eine Kombination aus schnellem Probevergleich mit grober/grosser Blockgrösse, ob es ab einem bestimmten offset vielleicht wieder totale Übereinstimmung gibt, und L.-fit für die engere Nachbarschaft könnte vielleicht die Lösung sein.

mfg
algol
User avatar
Samuel
Power Member
Power Member
Posts: 1930
Joined: 2003-08-29, 15:44 UTC
Location: Germany, Brandenburg an der Havel
Contact:

Post by *Samuel »

So eine erweiterte Levenshtein Ähnlichkeitssuche im Dateivergleich wäre in der Tat genial. Dann könnte in der wincmd.ini eingestellt werden wie viele Zeilen auf diese Weise verglichen werden.

Vielleicht könnte man das auch wieder auslagern a la "tcmatch.dll". Ich würde auf jeden Fall überlegen ein Dateivergleich eXtended Modul zu programmieren. ;-)
Post Reply