ABAP Tools - Arbeiten mit Eclipse (Quellcodevergleich)
Hier schauen wir uns an, wie wir mit den ABAP Development Tools Quellcode vergleichen können, einmal über Systeme hinweg und einmal die letzten Versionen.
Inhaltsverzeichnis
SAP hat seine eigene Versionshistorie im System, wenn es um die Verwaltung von Quellcode geht. Mit den ABAP Development Tools ist eine weitere Variante zur Ablage von Versionen dazu gekommen. In diesem Artikel schauen wir uns einmal die verschiedenen Varianten der Vergleiche an.
Einleitung
In der Vergangenheit gehörte es zum Standard, Änderungsvermerke in den Quellcode zu schreiben und so dem Lesenden die Historie der letzten 10 Jahre auf einen Blick zu präsentieren. Dies sorgte aber in den meisten Fällen für wenig Übersichtlichkeit und es gab kaum Möglichkeiten den Quellcode einmal richtig aufzuräumen oder ein Refactoring durchzuführen. Mit Clean ABAP hat sich das zum Glück geändert und wir, als ABAP Entwickler, kümmern uns um sauberen Quellcode. Dabei übernimmt das System die Verwaltung der verschiedenen Versionen von Quellcode, ähnlich wie Git es heute macht.
Vergleich ausführen
Wenn du den Vergleich mit einem Objekt starten möchtest, dann kannst du das über das Objekt (Kontextmenü), den Project Explorer oder per Tastenkürzel machen.
Objekt
Dazu einfach im Quellcode einen Rechts-Klick ausführen und im unteren Teil des Menüs nach dem Punkt "Compare with ..." suchen. Je nach Objekt kann das Menü sehr lang sein und die Suche dauert einen Moment.
Project Explorer
Dazu im Project Explorer das Objekt wählen, welches man vergleichen will, per Rechts-Klick öffnet sich das Kontextmenü. Dieses Mal ist das "Compare with ..." Menü an letzter Stelle.
Tastenkürzel
Wenn du im Quellcode bist, kannst du die Tastenkombination STRG + ALT + C (Standardeinstellung) drücken und bist direkt im Menü. Diese Variante spart das Suchen im Kontextmenü. Diese Option funktioniert im Quellcode, aber auch bei den markierten Objekten im Project Explorer.
Optionen
Nur über das Kontextmenü stehen alle Optionen zur Verfügung, die lokale Historie wird per Tastenkürzel standardmäßig ausgeblendet.
Dazu die einzelnen Optionen erklärt:
- Lokale Historie (Local History) - Auflistung aller lokalen Änderungen (Speichern und Aktivieren) die im Workspace und dem Projekt durchgeführt wurden. Vorteil ist die Historie der Entwicklung, ohne einen echten Versionseintrag im System schreiben zu müssen.
- Zwei Objekte (Each Other) - Ist aktiv, wenn zwei Objekte im Project Explorer markiert wurden. Die beiden Objekte werden dann miteinander verglichen.
- Letzte Version (Previous Revision) - Der Vergleich der aktuellen, aktiven, Ressource gegen die letzte Änderung in der Historie.
- Historie (Revision History) - Anzeige aller Versionen der Versionshistorie, durch die Auswahl von zwei Versionen kann ein Vergleich gestartet werden.
- Systeme - Unter der Historie werden alle offenen Systeme angezeigt, damit kann die Ressource des aktuellen Systems mit einem anderen System verglichen werden.
Vergleich analysieren
Wenn du ein Objekt vergleichst, dann wird dieses in einem eigenen Fenster aufgerufen und die beiden Ressourcen gegeneinander verglichen. Der aktuelle Quellcode steht dabei auf der linken Seite, der Quellcode für den Vergleich auf der rechten Seite.
Der Vergleich wird in unterschiedlichen Farben angezeigt, so werden neue Elemente mit Grün angezeigt, Änderungen mit Grau und Elemente, die entfernt wurden mit Rot. Verschiebungen von Befehlen werden ebenfalls angezeigt, wie zum Beispiel beim ENDCLASS. Wenn das Objekt sehr viel Coding enthält, werden noch zusätzlich neben der Scrollleiste alle Unterschiede hervorgehoben, sodass dir die Navigation zu den Unterschieden leichter fällt.
Vergleichsmethode
Ein Vergleich kann zu einem False-Positives führen und es werden Änderungen in der Klasse angezeigt, obwohl vielleicht gar nichts geändert wurde. Durch Transporte einer Klasse, kann es zu Abweichungen in der Methodenreihenfolge kommen. Da die Klassenbestandteile in eigenen Includes abgelegt werden und diese auch transportiert werden, kann die Reihenfolge im Folgesystem abweichen.
Über die drei Punkt im View oben Links, können die verschiedenen Vergleichsmethoden ausgewählt werden. In diesem Fall wechseln wir von "Default Compare" auf "ABAP Compare (Sorted Class Methods)".
Der Vergleich wird erneut durchlaufen, in diesem Fall werden keine Änderungen mehr angezeigt, die beiden Versionen sind wieder gleich, da die Reihenfolge der Methoden keinen Einfluss auf die Verarbeitung hat.
Lokale Historie
Die lokale Historie wird im Workspace von Eclipse angelegt und steht nur dir zur Verfügung. Immer wenn du eine Ressource aktivierst, wird ein Eintrag geschrieben. Es erfolgt aber keine Persistierung dieser Historie auf dem ABAP Server. Wenn du den Eintrag "Local History" im "Compare With" Menü wählst, erhältst du eine Übersicht in einer eigenen View:
Systemübergreifend
Über die offenen Systeme im unteren Bereich des "Compare with ..." Menüs, kannst du ein oder mehrere Objekte Systemübergreifend analysieren. Ist das Objekt gleich, erhältst du eine Meldung, dass keine Unterschiede ermittelt werden konnten.
Hinweis: Wenn du im Project Explorer mehrere Einträge markierst, werden alle verglichen. Objekte die Unterschiede aufweisen, werden direkt im Arbeitsbereich geöffnet, Objekte die gleich sind, werden auf das Popup übernommen (siehe Screenshot oben).
Fazit
Der Versionsvergleich in den ABAP Development Tools funktioniert wie in der SAP GUI, bietet aber noch einige Vorteile, gegenüber dieser. So können lokale Änderungen analysiert werden und es muss keine Transportfreigabe erfolgen. Ein versehentliches Löschen während der Entwicklung kann somit abgefedert werden.