Vergleich nach Inhalt
Moderators: Hacker, Stefan2, white
Vergleich nach Inhalt
Hi,
irgendwie verstehe ich die Markierung der Unterschiede bei "Vergleich nach Inhalt" nicht. Liegt's an mir oder am verwendeten Algorithmus?
Nehmen wir doch mal folgendes Beispiel:
Image: http://img175.imageshack.us/img175/4125/tcdiffjz3.th.png
Der Unterschied ist offensichtlich das "const", das auf der einen Seite zusätzlich vorhanden ist. Warum verhackstückelt der TC die Anzeige so?
Zudem sehe ich es hier irgendwie als verwirrend an, dass auf der einen Seite "onstraintUsage" steht, auf der anderen aber noch ein Leerzeichen auftritt, dass natürlich nicht mit markiert wurde.
Das Verhalten ist in 6.56 und 7RC3 identisch. Ist da noch Verbesserung in Sicht?
irgendwie verstehe ich die Markierung der Unterschiede bei "Vergleich nach Inhalt" nicht. Liegt's an mir oder am verwendeten Algorithmus?
Nehmen wir doch mal folgendes Beispiel:
Image: http://img175.imageshack.us/img175/4125/tcdiffjz3.th.png
Der Unterschied ist offensichtlich das "const", das auf der einen Seite zusätzlich vorhanden ist. Warum verhackstückelt der TC die Anzeige so?
Zudem sehe ich es hier irgendwie als verwirrend an, dass auf der einen Seite "onstraintUsage" steht, auf der anderen aber noch ein Leerzeichen auftritt, dass natürlich nicht mit markiert wurde.
Das Verhalten ist in 6.56 und 7RC3 identisch. Ist da noch Verbesserung in Sicht?
Ups - sorry. Hab beim Editieren nur den Thumbnail verlinkt 
Hier das richtige Bild:
http://img175.imageshack.us/img175/4125/tcdiffjz3.png

Hier das richtige Bild:
http://img175.imageshack.us/img175/4125/tcdiffjz3.png
Hm, irgendwo hat mal Christian neulich den Compare Algoritmus beschrieben, kann den Thread aber nirgends finden.
Vielleicht hat jemand mehr Gluck bei der Suche.
Roman

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
- ghisler(Author)
- Site Admin
- Posts: 50817
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Total Commander ist ein Programm, kein Mensch. Während es einem Menschen klar ist, dass da das "Const" geändert wurde, findet TC halt die Uebereinstimmung "aConst" zuerst...
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
Genau darum ging es mir ja. Ich möchte als Mensch gern die Ausgabe des Programms verstehen.
Allerdings dürfte es doch nicht die Aufgabe des Benutzers sein, wie das Programm zu denken, sondern das Programm sollte die Ausgabe entsprechend aufbereiten.
Wenn ich das nun richtig interpretiere, bedeutet die blaue Markierung so viel wie: wenn DAS auf beiden Seiten gelöscht wird, stimmen die Zeilen überein.
Gerade weil Mensch und Maschine die Aufgabe Unterschiede zu finden unterschiedlich lösen, wäre es meiner Meinung nach besser, die gesamte Zeile zu markieren oder zumindest Whitespace als Begrenzungen sinnvoll zu wählen. Ansonsten finde ich die Markierung zu verwirrend. Nicht nur, aber auch, weil nicht erkennbar ist, dass das Leerzeichen zu den Unterschieden gehört.

Wenn ich das nun richtig interpretiere, bedeutet die blaue Markierung so viel wie: wenn DAS auf beiden Seiten gelöscht wird, stimmen die Zeilen überein.
Gerade weil Mensch und Maschine die Aufgabe Unterschiede zu finden unterschiedlich lösen, wäre es meiner Meinung nach besser, die gesamte Zeile zu markieren oder zumindest Whitespace als Begrenzungen sinnvoll zu wählen. Ansonsten finde ich die Markierung zu verwirrend. Nicht nur, aber auch, weil nicht erkennbar ist, dass das Leerzeichen zu den Unterschieden gehört.
Bitte nicht! Beim Vergleich von Quelltexten kommt es nicht selten auf kleinste Unterschiede / einzelne Zeichen an, die der Mensch dann mühsam selbst suchen müsste.JFierce7 wrote:wäre es meiner Meinung nach besser, die gesamte Zeile zu markieren oder zumindest Whitespace als Begrenzungen sinnvoll zu wählen.
Who the hell is General Failure, and why is he reading my disk?
-- TC starter menu: Fast yet descriptive command access!
-- TC starter menu: Fast yet descriptive command access!
ihr müsst an die sache anders rangehen:
es wird angezeigt, welche zeilen unterschiedlich sind (man sieht es an den anderfarbigen zeilennummern)
dann wird von TC sogar noch der versuch unternommen, die einzelnen unterschiede farbig zu markieren, das klappt halt nur bedingt, aber ein super vorteil isses doch allemal
)
Christian, veröffentliche doch einfach mal den Algo dazu, dann können sich die anderen schlauen köpfe verbesserungsvorschläge überlegen
)
es wird angezeigt, welche zeilen unterschiedlich sind (man sieht es an den anderfarbigen zeilennummern)
dann wird von TC sogar noch der versuch unternommen, die einzelnen unterschiede farbig zu markieren, das klappt halt nur bedingt, aber ein super vorteil isses doch allemal

Christian, veröffentliche doch einfach mal den Algo dazu, dann können sich die anderen schlauen köpfe verbesserungsvorschläge überlegen

Ich kann mich nur StatusQuo und seb anschließen.
In diesem Sinne wäre es hilfreich wenn auch Leerzeichen markiert würden, die nur auf einer Seite vorhanden sind.
Gruß, Jürgen
In diesem Sinne wäre es hilfreich wenn auch Leerzeichen markiert würden, die nur auf einer Seite vorhanden sind.
Gruß, Jürgen
My add-ons and plugins for TC: NiftyLink, mbox, Sequences
Zumindest für mich ist es mühsamer, falsche Kennzeichnungen zu interpretieren...StatusQuo wrote:Beim Vergleich von Quelltexten kommt es nicht selten auf kleinste Unterschiede / einzelne Zeichen an, die der Mensch dann mühsam selbst suchen müsste.
Tatsächlich wäre es für die Interpretation aber ganz sinnvoll, den Algorithmus zu kennen.
Kann man eigentlich Farbe und Hintergrund der Markierung wie auch des Balkens bei "Nächster"/"Vorheriger" Unterschied ändern? Wie?
- ghisler(Author)
- Site Admin
- Posts: 50817
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Der Algorithmus ist eigentlich sehr einfach. Ich erklaere ihn anhand des obigen Beispiels:
Offenbar wurde in obigem Beispiel mit der Option "Gross/Kleinschreibung beachten" verglichen. Deshalb findet Total Commander die folgende Übereinstimmung (unterstrich= übersprungen):
Nun geht das Spiel von Neuem los: TC sucht erst wieder lauter gleiche Zeichen:
Total Commander nimmt erst mal so viele gleiche Zeichen, wie er finden kann:[face=courier]Zeile 1: } *const aConstraintUsage;
Zeile 2: } *aConstraintUsage;[/face]
Dann sucht er in beiden Strings nach der nächsten Übereinstimmung. Dazu wird erst Zeichen Zeile1Pos mit Zeile2Pos+1 verglichen, dann Zeile1Pos+1 mit Zeile2Pos, dann Zeile1Pos+1 mit Zeile2Pos+1 etc. Die Übereinstimmung mit dem kleinsten quadratischen Abstand von der aktuellen Position wird genommen.[face=courier]Zeile 1: } *
Zeile 2: } *[/face]
Offenbar wurde in obigem Beispiel mit der Option "Gross/Kleinschreibung beachten" verglichen. Deshalb findet Total Commander die folgende Übereinstimmung (unterstrich= übersprungen):
Das 'a' wird also als Einfügung erkannt, das 'c' als Unterschied. Das 'o' ist die erste neue Übereinstimmung.[face=courier]Zeile 1: } *_co
Zeile 2: } *aCo[/face]
Nun geht das Spiel von Neuem los: TC sucht erst wieder lauter gleiche Zeichen:
Und wieder die nächste Übereinstimmung:[face=courier]Zeile 1: } *_const
Zeile 2: } *aConst[/face]
Und schliesslich die restlichen übereinstimmenden Zeichen:[face=courier]Zeile 1: } *_const aConstr
Zeile 2: } *aConst_______r[/face]
Somit ergibt sich genau das Bild, das User JFierce7 hier eingestellt hat. Woher soll Total Commander nun wissen, dass der Textteil "onst" aus "Constraint" zum "Constraint" in der anderen Datei gehört, und nicht zum neu eingefügten "const"?[face=courier]Zeile 1: } *_const aConstraintUsage;
Zeile 2: } *aConst_______raintUsage;[/face]
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
ich hatte vor kurzem das selbe "problem" gemeldet:
http://www.ghisler.ch/board/viewtopic.php?t=16774&highlight=mrgolgi
Immerhin verstehe ich jetzt, warum ich so merkwürdige Ergebnisse erhalte.
Ich denke es sollte eine Option geben nur ganze Worte (Token) zu vergleichen. Das sollte für die meisten Anwender, die vermutlich eher Texte (Code) durchsuchen, als Binärdateien, besser funktionieren.
Als TC Fan wurmt es einen ja doch, wenn ein Tool wie Windiff das "richtig" macht und das Resultat beim TC leider unbrauchbar ist.
Gruß MrGolgi
http://www.ghisler.ch/board/viewtopic.php?t=16774&highlight=mrgolgi
Immerhin verstehe ich jetzt, warum ich so merkwürdige Ergebnisse erhalte.
Ich denke es sollte eine Option geben nur ganze Worte (Token) zu vergleichen. Das sollte für die meisten Anwender, die vermutlich eher Texte (Code) durchsuchen, als Binärdateien, besser funktionieren.
Als TC Fan wurmt es einen ja doch, wenn ein Tool wie Windiff das "richtig" macht und das Resultat beim TC leider unbrauchbar ist.
Gruß MrGolgi
Ein Pessimist ist ein Optimist mit Erfahrung