Delphi-PRAXiS

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.

taaktaak 20. Jun 2008 06:56

Re: Suche: Ausgefuchstes Datei-Vergleichstool
 
Moin, Moin,
falls es zu einem "DP-Projekt" kommen sollte: Ich hätte Interesse mich in den Bereichen "Benutzeroberfläche" und "Hilfe" zu beteiligen. Aber, um es gleich vorwegzunehmen: Ich hasse futuristische "Bubble Gum Oberflächen" mit schrillen Farben :twisted:

uligerhardt 20. Jun 2008 07:32

Re: Suche: Ausgefuchstes Datei-Vergleichstool
 
Bei WinMerge kann man unter "Eigenschaften (Vergleichen)" "Verschobene Blöcke erkennen" anhaken. Ich kann aber nicht sagen, wie gut das funktioniert - hab's noch nie ernsthaft ausprobiert.

Uli.

ralfschwalbe 20. Jun 2008 07:49

Re: Suche: Ausgefuchstes Datei-Vergleichstool
 
Hi,

ich nutze für sowas das etwas "angestaubte" PasDiffPro von http://www.softcomplete.com/

toms 20. Jun 2008 07:52

Re: Suche: Ausgefuchstes Datei-Vergleichstool
 
Zitat:

Zitat von ULIK
Wie wäre es mit Structured Diff Viewer?


Einige Features:
Zitat:

Structured difference.
Class difference.
Method difference.
File based difference.
Es gibt sogar ein voll funktionsfähige Demo Version:
ModelMaker Structured Difference Viewer demo is free and fully functional. It expires 45 days after installation.

OldGrumpy 20. Jun 2008 09:57

Re: Suche: Ausgefuchstes Datei-Vergleichstool
 
Structured Diff Viewer klingt schonmal ganz nach dem was mir vorschwebt. Ich werds mir mal anschauen. Der Preis ist mit 29 Euro auch gut erschwinglich wenns taugt :) Ich melde mich später nochmal :)

Könnte mir aber trotzdem vorstellen, was eigenes zu schreiben, müsste man halt mal schauen was das für ein Aufwand ist. :)

RavenIV 20. Jun 2008 10:15

Re: Suche: Ausgefuchstes Datei-Vergleichstool
 
Ich hab mir "PasDiffPro" und "Structured Diff Viewer" mal angeschaut und finde beide eigentlich recht interessant.
Wobei mich das "Structured Diff Viewer" mehr angesprochen hat, weil es etwas "moderner" ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr.

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