![]() |
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 :) |
Re: Suche: Ausgefuchstes Datei-Vergleichstool
Kein Tool ist fuer sowas perfekt. Manche schwoeren auf
![]() ![]() |
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)...
|
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? |
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 |
Re: Suche: Ausgefuchstes Datei-Vergleichstool
Zitat:
Es ist eigentlich das gleiche Problem (nur kleiner) wie bei Decompilern. |
Re: Suche: Ausgefuchstes Datei-Vergleichstool
Zitat:
MfG, Bug |
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: ![]() Man merkt halt schon, dass das Tool von und für "hardcore Linux Freaks" gebaut wurde. Exe + Source für Windows: ![]() Hier noch ein Vergleich einiger Tools: ![]() Ich finde das CSDiff recht gut. |
Re: Suche: Ausgefuchstes Datei-Vergleichstool
|
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. |
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