Visualisieren von Repositorien mit Gource
Gource ist ein Programm, das die Aktivitäten in einem Quellcode-Repositorium visualisiert. Ob die Visualisierung etwas nützt oder nicht - es kommen jedenfalls interessante Videos dabei heraus.
Die Entwicklung von Softwareprojekten findet überwiegend in Versionsverwaltungssystemen statt. Da jede Änderung an den Projektdateien aufgezeichnet wird, können diese Systeme naheliegenderweise auch ein Protokoll aller Änderungen produzieren. Dies stellt jedoch eine eher trockene Lektüre dar. Was das freie Programm Gource daraus macht, ist allerdings atemberaubend und ähnelt manchmal verblüffend fraktalen Strukturen.
In der Entwicklung freier Software spielen freie Versionsverwaltungssysteme natürlich die größte Rolle. Zu den wichtigsten gehören Git, SVN, Mercurial (hg), Bazaar (bzr) und CVS. Kurz gesagt zeichnen sie auf, wer wann welche Änderungen an welchen Dateien eingebracht hat. Wie wäre es nun, wenn das »Wer« durch Avatare visualisiert würde, die durch die als Baumstruktur dargestellte Dateihierarchie flitzen, und der zeitliche Verlauf in einem Video nachgestellt würde? Genau das ist die Idee von Gource, das von Andrew Cauldwell ersonnen wurde.
Software-Projekte werden von Gource als animierter Baum dargestellt, wobei das Wurzelverzeichnis des Projekts im Zentrum liegt. Verzeichnisse erscheinen als Zweige, Dateien als Blätter. Man kann sehen, wie die Entwickler am Baum arbeiten, synchron zu den Zeiten, an denen sie zu dem Projekt beigetragen haben. Die Algorithmen, die Gource zur Visualisierung einsetzt, sind raffiniert und führen zu teils spektakulären Effekten. Man muss es einfach selbst gesehen haben.
Gource liegt aktuell in Version 0.40 vor und ist in vielen Linux-Distributionen verfügbar, ansonsten kann man es von der Projektseite herunterladen. Es benötigt OpenGL und den Zugriff auf ein Repositorium. Zu beachten ist, dass aus CVS-Repositorien das Log zuvor mit dem Programm »cvs2cl« extrahiert werden muss. Repositorien, die nicht direkt von Gource unterstützt werden, lassen sich einbinden, indem man sich ein Skript schreibt, das das von diesem System erzeugte Log in das von Gource benötigte Format umwandelt.
Hier ein Blick auf OpenOffice als Beispiel:
Der Aufruf von Gource ist oft sehr simpel:
gource <Pfad zum Repo>
Das Programm kennt allerdings auch etliche Optionen und lässt sich während der Animation mit der Tastatur und der Maus umfassend steuern. Einzelheiten findet man in der Manpage.
Hat man kein eigenes Repositorium zur Verfügung, kann man im Internet - unter anderem auf der Gource-Homepage und auf Youtube - etliche Videos von Gource-Läufen finden. Selbst der Linux-Kernel wurde bereits komplett visualisiert, was in einem epischen Video von 2:46 Stunden resultierte, und dabei endet es bereits im Jahr 2012.
In Firmen, wo oft ein Team über Monate oder Jahre an einem Projekt arbeitet, lässt sich Gource ebenfalls gut einsetzen. Über den praktischen Wert der Übung soll hier nicht weiter spekuliert werden, es ist jedoch garantiert, dass Gource für jede Menge Gesprächsstoff und Heiterkeit sorgen wird.