git-instaweb

Ich weiß noch wie ich zu git kam. Damals hatte ich über WordPress von SVN gehört und irgendwie hatte ich es nicht ganz verstanden auf anhieb und hielt es auch erstmal nicht für nötig mir das beizubringen. Zudem war damals schon git auf dem Vormarsch und wurde immer wichtiger. Nach einiger Zeit schloss ich mich dann dem git-Hype an und arbeitete mich in dieses Werkzeug ein. Inzwischen bin ich großer Fan von git und habe viel, wirklich viel, gelernt. Ich lasse mich von neuen Dingen gerne mitziehen und versuch so viel aufzunehmen wie es geht. Ich las Artikel, schaute mir Screencasts und Talks über das Thema an und ging dann sogar soweit und habe mir ein eigenes kleines git Cheat Sheet erstellt mit Scripts und Snippets, die ich interessant finde.

Nun wurde gerade vor wenigen Tagen git 2.11 veröffentlicht. Mit neuen Funktionen und spannenden Erweiterungen. Aber heute möchte ich euch eine Sache zeigen, die wohl relativ unbekannt den meisten Leuten ist.

Ich vermute, dass viele von euch, sofern sie mit git arbeiten, eine GUI verwenden. Die bekanntesten sind wohl gerade Tower, SourceTree und GitKraken. Anfangs habe ich git ausschließlich aus dem Terminal genutzt. Einmal weil ich es ziemlich nerdig und cool fand 😉 und zum anderen, weil ich dadurch gezwungen war git komplett zu lernen. In dieser Zeit testete ich git auf Herz und Nieren. Inzwischen bin ich mit SourceTree unterwegs und schätze diese GUI doch sehr.

Im Oktober wurde dann ein Tweet in meine Timeline gespült, der mir eine Funktion aufzeigte, die ich selber noch nicht kannte. Denn git hat selber eine web-based UI zu bieten. Die ist zwar recht simple und „nur“ zum anschauen des Repos aber kann doch recht hilfreich sein, wenn man gerade keine vollwertige GUI zur Hand hat und das Repo nur explorieren möchte.

Instantly browse your working repository in gitweb

Die Funktion git-instaweb wurde im April 2015 in Version 2.3.9 eingeführt. Und ist dafür gedacht sein Repository sofort im Browser anzugucken. Denn seien wir mal ehrlich das Terminal ist praktisch und gut, aber manchmal ist es doch einfacher das ganze Log zu sehen und mit einem Mausklick zw. Commits und Patches hin und her wechseln zu können.

Start the engine

Das Starten der UI ist simple. Einfach folgenden Befehl im Terminal ausführen, während ihr euch in einem git Repo befindet.

$ git instaweb

git verwendet im Hintergrund einen leichten Webserver, der die Seiten darstellt. Standardmäßig wird das mit lighttpd versucht. Beim Mac kann das erstmal zu einer Fehlermeldung kommen. Auf dem Mac führt ihr am besten folgendes aus:

$ git instaweb --httpd=webrick

Ich konnte es leider nicht unter Windows oder Linux testen. Ich würde mich über einen Kommentar freuen, wie es dort funktioniert und würde es hier dann nachtragen.

Laut Dokumentation werden aktuell apache2, lighttpd, mongoose, plackup und webrick unterstützt.

Beim ersten Start sieht man die Projekt-Übersicht. Hier kann man nun das Repo auswählen, dass man näher begutachten möchte.

Der Start offenbart einem als erstes die Projekt-Übersicht. Einfach auf die Beschreibung klicken und man gelangt zur Summary des Repos. Über verschiedene Views kann man nun eine Zusammenfassung der letzten Commits sehen, das Shortlog, das Log, einzelne Commits in Detailansicht, ein Commitdiff und selbst den Tree, also das Verzeichnis.

Alle Dateien kann man direkt im Browser angucken und die Diff Ansicht ist sogar farblich markiert. Und wer Hardcore ist kann sich auch gleich den Patch als Rein-Text Variante ansehen.

Das schöne hierbei ist nahezu alles ist mit Links versehen und man kann sich so schnell durch das Repository durch klicken.

instaweb in die Config eintragen

Falls ihr instaweb öfters verwenden möchtet könnt ihr ein paar Parameter auch direkt in eure .git/config schreiben. Dann spart ihr euch die beim starten.

[instaweb]
    local = true
    httpd = apache2 -f
    port = 4321
    browser = konqueror
    modulepath = /usr/lib/apache2/modules

Hier bei wird z.B. apache2 als Server verwendet auf Port 4321 und es soll der Browser Konqueror verwendet werden beim starten. Zusätzlich ist noch der Modulpfad zum apache2 Server angegeben.

Bonus: Beschreibung hinzufügen

Den aufmerksamen Lesern ist es sicherlich aufgefallen, dass oft folgender Satz zu sehen ist: Unnamed repository; edit this file ‚description‘ to name the repository.

Möchtet ihr als eurem Repository einen Namen geben müsst ihr nur die Datei in .git/description editieren und dort euren Wunschnamen eintragen. Dieser wird dann in der UI angezeigt.

 

Author: Hans-Helge

Als studierter Informatiker arbeitet Hans-Helge gerne als freiberuflicher WordPress Entwickler und betreut neben eigenen Projekten viele andere Webseiten u.A. im ehrenamtlichen Bereich.

Ein Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.