Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Suche: Ausgefuchstes Datei-Vergleichstool (https://www.delphipraxis.net/115899-suche-ausgefuchstes-datei-vergleichstool.html)

OldGrumpy 19. Jun 2008 16:39


Suche: Ausgefuchstes Datei-Vergleichstool
 
Hallo zusammen,

ich hätt da gern mal wieder ein Problem ;)

Ich habe hier ein recht umfangreiches Projekt und soll nun die Unterschiede zwischen der Uralt- und der aktuellen Version dokumentieren. Der Knackpunkt: Der Code lag anfangs wie Kraut und Rüben vor, und ich habe geraume Zeit damit zugebracht, den Kram mal entsprechend zu sortieren. Damit werden jetzt aber die üblichen Verdächtigen weitgehend nutzlos, da mir haufenweise Unterschiede angezeigt werden, die gar keine sind: Verschobene Codeblöcke werden zu zwei Lücken -> zwei Unterschiede. Gibt es irgendwelche Tools zum Vergleich, die nicht zeilenbasiert sondern auf Funktions-/Methodenebene arbeiten können? Ich werfe also z.B. zwei Files in das Tool das ich suche, das Tool parsed die enthaltenen Klassen und Funktionen/Prozeduren, zeigt mir dann jeweils an welche nur hier/nur da vorhanden sind und welche geändert wurden.

Für jeden einzelnen Eintrag dieser Liste könnte man dann die Detailansicht aktivieren, wo "herkömmlich" zeilenbasiert verglichen würde.

Für jeglichen Hinweis auf so ein Tool wäre ich wirklich sehr dankbar, ansonsten wartet eine Menge Handarbeit auf mich :)

Olli 19. Jun 2008 17:00

Re: Suche: Ausgefuchstes Datei-Vergleichstool
 
Kein Tool ist fuer sowas perfekt. Manche schwoeren auf Bei Google suchenBeyond Compare, andere auf Bei Google suchenWinMerge ... aber vielleicht haste die sogar schon ausgeschlossen.

OldGrumpy 19. Jun 2008 18:58

Re: Suche: Ausgefuchstes Datei-Vergleichstool
 
Beyond Compare habe ich im Einsatz, WinMerge auch - wie Du schon sagtest haben beide so ihre Ecken und Kanten. Aber bisher ist es mir noch nicht gelungen, einen nicht zeilenbasierten Vergleich wie oben beschrieben zu realisieren. Der Knackpunkt ist halt, dass im alten Code teilweise Methoden mehrerer Klassen wild hintereinander in ein File geklatscht wurden, und wenn ich die fürs bessere Handling umsortiere, kriege ich beim Diffen halt jede Menge Unterschiede die eigentlich keine sind weil nur an der ersten Position ein Block ist der nun an der zweiten fehlt und umgekehrt. Daher suche ich nach einem Tool mit dem ich nicht so an den Zeilen hänge sondern besser mit logischen Blöcken arbeiten kann (und diese Blöcke auch nicht in der absolut gleichen Anordnung vorkommen müssen)...

Olli 19. Jun 2008 19:07

Re: Suche: Ausgefuchstes Datei-Vergleichstool
 
Ansonsten waere da noch Perl :zwinker:

Nee, aber in dem Falle weiss ich wirklich nicht weiter. Ich meine auch, dass ein solches Tool ja im Prinzip die Syntax der Sprache verstehen muesste. Wie sonst koennte man kleine Unterschiede die bei zeilenbasiertem Vergleich gross aussehen vernuenftig finden?

OldGrumpy 19. Jun 2008 19:35

Re: Suche: Ausgefuchstes Datei-Vergleichstool
 
Ich stell mir halt im Prinzip was vor wo ich zwei Files reinwerfe. Das Ding parsed dann den Code (im Prinzip reichen da ja wenige Schlüsselwörter aus, Begin/End/Type/Class usw.) und erstellt daraus eine Liste von logischen Blöcken in jedem File. Und dann werden diese logischen Blöcke einander zugeordnet und ganz normal jeweils Block für Block miteinander zeilenweise verglichen. Damit fallen dann die Unterschiede durch umsortieren von Funktionen alle komplett weg. Funktionen die ich nicht geändert habe, ebenfalls. Und nur die in denen was geändert wurde, die würden dann farblich markiert, und nach Anwahl mittels Mausklick dann in der gewohnten zeilenbasierten Art und Weise verglichen, aber dann halt nur innerhalb dieses einen logischen Blocks. Klingt doch nach einem super Werkzeug, oder?

//Edit: Umformuliert damit es klarer wird

Olli 19. Jun 2008 19:54

Re: Suche: Ausgefuchstes Datei-Vergleichstool
 
Zitat:

Zitat von OldGrumpy
Klingt doch nach einem super Werkzeug, oder?

Jupp. Die Graphentheorie ist dein Freund :mrgreen:

Es ist eigentlich das gleiche Problem (nur kleiner) wie bei Decompilern.

BUG 19. Jun 2008 21:59

Re: Suche: Ausgefuchstes Datei-Vergleichstool
 
Zitat:

Zitat von OldGrumpy
Klingt doch nach einem super Werkzeug, oder?

Das wär doch was für ein DP-Projekt :thumb:

MfG,
Bug

sx2008 19. Jun 2008 23:51

Re: Suche: Ausgefuchstes Datei-Vergleichstool
 
GNU Diff hat wahrscheinlich die ausgefeiltesten Algorithmen zum Vergleich von Textdateien.
Das Problem ist nur, dass du dich in die Unzahl der Aufrufparameter einfuchsen musst.
Hier die Doku: http://www.gnu.org/software/diffutil...mono/diff.html
Man merkt halt schon, dass das Tool von und für "hardcore Linux Freaks" gebaut wurde.
Exe + Source für Windows: http://gnuwin32.sourceforge.net/packages/diffutils.htm

Hier noch ein Vergleich einiger Tools: http://www.thefreecountry.com/progra...mparison.shtml
Ich finde das CSDiff recht gut.

ULIK 20. Jun 2008 04:46

Re: Suche: Ausgefuchstes Datei-Vergleichstool
 
Wie wäre es mit Structured Diff Viewer?

Grüße,
Uli

SirThornberry 20. Jun 2008 06:19

Re: Suche: Ausgefuchstes Datei-Vergleichstool
 
Wenn es nur durch Formatierung etc. zu Problemen kommt wäre es eine Möglichkeit über beide Stände einen Code-Formatierer drüber laufen zu lassen. Dann sollten die Einrückungen und Zeilenabstände gleich sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:00 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz