Matthias Sohn über EGit 2.0

Eclipse Juno Highlights: #1 – EGit

Kein Geheimnis ist, dass die Eclipse-Community zunehmend auf Git setzt. Zahlreiche Eclipse-Projekte stellen zurzeit auf das verteilte Versionskontrollsystem von Linux-Erfinder Linus Torvalds um, auch deshalb, da Eclipse bis Ende des Jahres den Support von CVS einstellen wird (der Countdown läuft auf der Eclipse-Seite SCM Countdown). Sicherlich kann man Git auch Out-of-the-Box mit Java-Anwendungen nutzen. Eine tiefe Integration in Eclipse schafft aber das Projekt EGit, das einen Team-Provider für Git bereit stellt und zusätzliche Tools, allen voran das Review-Werkzeug Gerrit einbindet. In Eclipse Juno hat das EGit-Team die zweite Major-Version vorgelegt und damit ein unbestrittenes Highlight gesetzt. Project-Co-Lead Matthias Sohn bringt uns auf den neuesten Stand.

JAXenter: Das EGit-Projekt präsentiert sich in Eclipse Juno mit der 2.0-Version. Was hat sich seit Eclipse Indigo getan?

Matthias Sohn: In JGit sind Stash- und Patch-Support dazu gekommen. Durch die Unterstützung der insteadOf-Konfigurationsparameter wird das globale Ändern von URLs möglich, beispielsweise kann man damit global für alle Repositories von ssh- auf git-Protokoll umkonfigurieren. Beim Lesen von Konfigurationen und bei der Behandlung des Git-Index gibt es Performanceverbesserungen. Schließlich haben wir die Exception-Behandlung aufgeräumt, das ist einer der Gründe für das Major-Version-Update, weil dadurch das JGit-API inkompatibel geändert werden musste.

EGit unterstützt nun Stashing, damit wird es einfacher, Änderungen schnell auf die Seite zu stellen, um auf eine andere Entwicklungsaufgabe umstellen zu können; später können die Änderungen wieder in den Working Tree zurückgeholt werden, um nahtlos an der Stelle weiterzumachen, wo die Unterbrechung dazwischen kam.

Wenn beim Branch-Wechsel neue Projekte dazukommen oder wegfallen, kann EGit diese nun optional automatisch öffnen und schließen, wenn immer wieder zwischen denselben Branches gewechselt wird. Die neue Unterstützung von Workspace Patches erleichtert die Arbeit mit dem generischen Apply Patch Wizard der Workbench.

Die neu dazugekommene Unterstützung für den OSGi Manifest Header „Eclipse-SourceReferences“ ermöglicht es ausgehend von einem installierten Plug-in dessen Git Repository zu klonen. Damit wird es erheblich einfacher Patches für solche Plug-ins zu erstellen.

Die History View wurde überarbeitet und lädt die Historie jetzt inkrementell, was den Speicherverbrauch und die Ladezeiten erheblich reduziert. Man kann nun ausgehend von einer selektierten, historischen Version Annotations berechnen lassen, außerdem wurde die Rename-Unterstützung verbessert.

Die Staging View nutzt nun auch den globalen IndexDiff Cache und ist damit schneller geworden, weiterhin unterstützt er nun Files, die nicht im Eclipse Workspace liegen (das sind alle Files, die nicht innerhalb von Eclipse-Projekten, aber innerhalb des Repositories liegen). Das Erstellen von Commit Messages wird nun durch Content Assist für Dateinamen und alte Commit-Messages unterstützt. Eine vollständige Liste der neuen Features ist im JGit und EGit New & Noteworthy [1, 2] zu finden.

JAXenter: Git spielt auch eine wichtige Rolle in der neuen Build-Infrastruktur CBI. Was sind die Ziele von CBI und welche Funktion hat dort EGit bzw. JGit?

Matthias Sohn: CBI ist ein neues Projekt, das sich die Vereinfachung des zentralen Build, und Releaseprozesses für Eclipse-Projekte zum Ziel gesetzt hat. Momentan wird es vor allem vom Eclipse-Platform-Projekt und Maven/Tycho-Experten vorangetrieben, um eine Grundlage für die Ablösung des vom Eclipse-Platform-Projekts immer noch verwendeten PDE-Builds zu schaffen. Des Weiteren soll die dabei entstehende Toolkette auch im Long-Term-Support-Projekt eingesetzt werden und die langfristige Wartung alter Releases erleichtern. JGit wird dazu genutzt werden, die Build-Tools (Maven/Tycho) mit den Git Repositories enger zu integrieren. Beispielsweise soll damit Tycho in die Lage versetzt werden, Bundle-Versionen beim Release eines OSGi Bundles/Eclipse-Plug-ins nur dann zu erhöhen, wenn wirklich Änderungen seit dem letzten Build an den Bundle Sources vorgenommen wurden.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.