Über den Status quo verteilter Versionsverwaltungssysteme

Seite 5: Ökosystem der Handwerkzeuge

Inhaltsverzeichnis

Kurz sei nun das Ökosystem um Mercurial und Git etwas näher angeschaut. Viel zur Verbreitung von Subversion hat im Übrigen die gute Tool-Unterstützung sowohl unter den Unix/Linux-Derivaten sowie Windows als auch in diversen Entwicklungsumgebungen wie Eclipse beigetragen. TortoiseSVN (http://tortoisesvn.tigris.org/), ein Subversion-Client für Windows, setzt immer noch Maßstäbe, an dem sich viele andere Clients orientieren. In die Fußstapfen möchte TortoiseHg treten, was dem Tool teilweise gelingt. Anzumerken ist, dass TortoiseHg "fast" plattformunabhängig daherkommt: Pakete für diverse Linux-Distributionen und Windows-Installer sind vorhanden, auch eine Portierung auf Mac OS X ist vorhanden.

TortoiseHg unterstützt Entwickler durch eine gelungene Visualisierung der Historie mit zusätzlichen Informationen. Hier sind die Entwicklungszweige von MercurialEclipse und die Merge-Vorgänge zu sehen (Abb. 1)

TortoiseHG visualisiert die Merge-Vorgänge (Abb. 1)

Es existiert ein Namensvetter auf Seiten von Git, sinnigerweise TortoiseGit genannt. Er steht aber leider nur unter Windows zur Verfügung, wie auch einige andere Tools, etwa Git Extension. Eine vollständige Übersicht der Werkzeuge rund um Git bietet das Git-Wiki. Überraschen mag den einen oder anderen mittlerweile die gute Unterstützung für Windows und Mac OS X durch Git-Clients (lange war nicht mal eine Git-Binary unter Windows verfügbar), während diese unter Linux eher eine Ausnahme darstellen. Beispielsweise lässt die mit Git ausgelieferte Applikation git-gui den Autor um zehn Jahre zurückversetzt fühlen. Da merkt der verwöhnte Benutzer schnell, dass gerade im Linux-Umfeld mit Git viel auf Kommandozeilenebene gearbeitet wird.

Für Nutzer der Entwicklungsumgebung Eclipse stehen sowohl mit EGit als auch mit MercurialEclipse gut gelungene Plug-ins zur Verfügung. MercurialEclipse steht in Version 1.8.2 auf den Projektseiten zum Download bereit. Es unterstützt das aktuelle Mercurial 1.9, arbeitet aber auch mit älteren Versionen. MercurialEclipse wird unter anderem von Andrej Loskutov und John Peberdy federführend entwickelt. Das Projekt ist allerdings nach einigen Querelen mit JavaForge beziehungsweise Intland Software gespalten, und es existiert seit Kurzem neben dem Mercurial-Repository bei javaforge.com auch eines bei Google Code . Trotz allem existiert ein gemeinsames Bugtracking-System und, besonders wichtig, eine gemeinsame Release-Strategie.

Die Installation von MercurialEclipse erfolgt über die Eclipse Update Site oder alternativ via Eclipse Labs (Build aus den Sourcen bei Google Code). Änderungen in den Quelltexten auf Googles Code-Plattform fließen, wenn auch mit gewisser Verzögerung, bei javaforge.com ein. Die Quelltexte des Plug-ins lassen sich über

hg clone http://javaforge.com/hg/hgeclipse 

beziehungsweise über

hg clone https://hg.codespot.com/a/eclipselabs.org/mercurialeclipse/ mercurialeclipse

herunterladen, installiertes Mercurial vorausgesetzt. Für das Repository bei javaforge.com benötigt man allerdings einen Zugang.

MercurialEclipse bietet den Zugriff auf die Funktionen von Mercurial in altbewährter Weise aus Eclipse heraus an (Abb. 2).

Zugriff auf Mercurial kann bequem über MercurialEclipse erfolgen (Abb. 2)

EGit, das Plug-in zur Intergration von Git in die Entwicklungsplatform Eclipse, hat inzwischen mit Eclipse Indigo die Weihen der Version 1.0 erreicht. Die Installation erfolgt am besten, wie auf der Projektseite empfohlen, über die Update-Site . Eine Installation über den Eclipse Marketplace bricht mit Keybinding-Konflikten ab. Alle wichtigen Funktionen von Git sind über das Menü von EGit erreichbar, wenn auch viele Funktionen von Git nicht zur Verfügung stehen (siehe auch das passende Release and Graduation Review, PDF). Kein Wunder bei deren Viezahl. Das hindert einen Entwickler bei der täglichen Arbeit nicht.

EGit 1.0 wirkt aufgeräumt, wenn auch sich das Arbeiten mit EGit schon etwas von dem mit einem der Subversion-Plug-ins oder MercurialEclipse unterscheidet. Alleine die Tatsache, dass man ein Projekt umkopiert, (vorgeschlagen wird ~/git/[Projektname]), dürfte manchen Neu- und Umsteiger etwas irritieren, die Einarbeitungszeit ist dadurch etwas länger und die Dokumentation hinkt oft hinterher.

Erwähnenswert ist die Unterstützung der "sozialen Entwicklungsplattform" GitHub, sodass sich das Einbinden von Repositories aus ihr heraus recht einfach gestaltet.

Das Menü von EGit 1.0 wirkt aufgeräumt, und die wichtigsten Funktionen stehen mit einem Mausklick zur Verfügung (Abb. 3).

Das Menü von EGit 1.0 wirkt aufgeräumt (Abb. 3)

Bleibt noch zu erwähnen, dass auch die Integration von Git und Mercurial in NetBeans und anderen Entwicklungsumgebungen gegeben ist. Selbst die Visual-Studio-Welt ist nicht vergessen worden: Es existieren mehrere Add-ins sowohl für Mercurial als auch für Git.