Dienstag, 25. November 2008

Git auf dem Mac

Mac-Nutzer haben es schwerer, mit dem out-of-the-box-Git warm zu werden, als Windows- oder Linux-Nutzer: Git bringt zwar eine eigene GUI mit (eben git gui), aber die hat, zumindest auf meinem Leopard, Probleme mit dem Tcl/TK: Angefangen bei der Schriftgröße, über nicht Mac-konforme Texteingaben, bis hin zu fehlenden Funktionen (die auf anderen Systemen auf der rechten Maustaste liegen, bei der Mac-Implementierung aber nicht einmal auf Ctrl-Maustaste hören). Alles keine Katastrophen, aber nicht sehr schön.

Aber schließlich hat man einen Mac, weil man sich bei der Arbeit auch ein wenig freuen möchte. Genau deshalb gibt es GitX und Gitnub. Dabei ist GitX der "Ersatz" für viele Funktionen des originalen Git GUI, während Gitnub eher der Visualisierung dient und eine Erleichterung für alle Github-User darstellt.

Aber Vorsicht: Ganz ohne Git GUI (bzw. die Kommandozeile) geht's leider immer noch nicht, denn pull und push werden von den beiden Tools noch nicht unterstützt.

Unter'm Strich macht die Arbeit mit GitX und Gitnub einfach mehr Spaß.

Freitag, 21. November 2008

Immer wieder Maven: mvn site

Ach ja, Maven, mein Lieblingstool bei der Softwareentwicklung. Immer wieder gibt's damit Probleme, angefangen bei der sehr fragwürdigen "always online" Philosophie, über reichlich unübersichtliche Builds (na schön, das könnte man sich sparen, wenn man seine Builds richtig aufsetzt), bis hin zu Plugins, die bei jedem nichttrivialen Projekt abstürzen. In schwachen Minuten frage ich mich schon mal, wozu sich ernsthafte Entwickler diese Monstrosität antun.

Aber das war erstmal nur, um in die richtige Stimmung zu kommen. Ein immer wieder auftretendes Problem beim Einsatz von Maven ist mvn site. Das Plugin soll eigentlich die tollen Dokumentationen des Projektes erstellen, tendiert aber dazu, mit OutOfMemoryExceptions abzubrechen. Kein sehr spezielles Problem (Google sagte mir gerade, es hätte knapp 36000 Hits für die Schlüsselworte "maven site outofmemory"), und trotzdem vergesse ich immer wieder, wie ich den häßlichen Vogel in die Luft bekomme. Nun, hier ein Link zu The Wrath of Krang.

Kurzfassung: Mit der Environment-Variable MAVEN_OPTS="-Xmx1024m -Xms128m" sollte es eigentlich funktionieren.

(Und, wie es sich gehört, funktioniert es hier bei meinem Projekt nicht. Aber das ist eine andere Geschichte.)

Donnerstag, 20. November 2008

Multi-User-Git

In meinen letzten Artikeln zu Git ist immer nur am Rande auf das Aufsetzen eines zentralen Git-Repositories beschrieben. Früher oder später braucht man das aber, zusammen mit einem headless Repository. Im Grunde ist das ganz einfach (wie so vieles bei Git) -- hier die Anleitung vom Git-Tutorial von online-tutorials.net:

~ # mkdir git
~ # cd myproject
~/myproject # git clone --bare .git ~/git/myproject.git

Fertig ist das headless Repository. Für die Berechtigung auf User-Ebene gibt's ein Beispiel-Script, welches im obigen Beispiel nach ~/git/myproject.git/hooks/update kopiert und angepaßt wird. Dann sollte nur noch die Server-Infrastruktur aufgesetzt werden (git-user anlegen, Login-Shell auf /usr/bin/git-shell setzen), und fertig ist der zentrale Server. Zum Aufhübschen kann da vielleicht noch ein gitweb gestartet werden, aber das ist dann schon Luxus.