Git ist ein mächtiges verteiltes Versionsverwaltungssystem. Und
Github ist heute für viele Entwickler der Hosting-Dienst der Wahl für Softwareentwicklungs-projekte. Warum git so toll ist wird auf
dieser Seite ausführlich beschrieben.
Manchmal nutzt man aber doch lieber einen eigenen Server um seine Projekte zu hosten. Dies bringt aber auch immer einen gewissen Administrationsaufwand mit sich. Mit
gitolite gibt es allerdings ein einfaches Administrationstool, welches auch selbst die Vorteile des Versionsverwaltungssystem nutzt, denn es ist selbst ein Repository. Mit dieser Anleitung besitzt man in 5 Minuten ein Git-Server und kann anschließend in Sekunden neue Repositorys aufsetzen.
In diesem Beispiel verwende ich einen Client (gitclt), welcher auf einen Server (gitsrv) zugreift, auf welchem später gitolite laufen soll. Beide nutzen
Ubuntu 10.04 als Betriebssystem.
Der erste Schritt beinhaltet natürlich die Installation von git auf dem Server und natürlich auch dem Client.
gitadmin@gitsrv: sudo aptitude install git-core
Mittels git lädt man sich die neuste Version von gitolite herunter - d.h. man klont das Repository.
gitadmin@gitsrv: git clone git://github.com/sitaramc/gitolite gitolite-source
Die Installation erfolgt mittels einfacher Skripte, die gitolite gleich mitbringt.
gitadmin@gitsrv: cd gitolite-source
gitadmin@gitsrv: sudo mkdir -p /usr/local/share/gitolite/conf /usr/local/share/gitolite/hooks
gitadmin@gitsrv: sudo src/gl-system-install /usr/local/bin /usr/local/share/gitolite/conf /usr/local/share/gitolite/hooks
Nun kopiert man den public-Key des Nutzers, welcher später die Repositorys verwalten soll, vom Client auf den Server.
oliver@gitclt: scp .ssh/id_dsa.pub gitadmin@gitsrv:/tmp/oliver.pub
Wieder zurück auf dem Server konfiguriert man gitolite und weist ihm den gerade kopierten public-Key als Schlüssel des Administrators zu.
gitadmin@gitsrv: gl-setup /tmp/oliver.pub
Das war auch schon alles. Die weitere Administration geschieht über gitolite bzw. das gitolite-Repository.
oliver@gitclt: git clone gitadmin@gitsrv:gitolite-admin
Um ein neues Repo hinzuzufügen fügt man einfach ein paar Zeilen in die Konfigurationsdatei
gitolite-admin/conf/gitolite.conf
hinzu.
repo neues_repo
RW+ = @all
Und schiebt das ganze zurück ins gitolite-Repository
oliver@gitclt: cd gitolite-admin
oliver@gitclt: git commit -m "Repo neues_repo hinzugefügt" conf/gitolite.conf
oliver@gitclt: git push
oliver@gitclt: cd ..
Und schon kann man sein neues Repository klonen.
oliver@gitclt: git clone gitadmin@gitsrv:neues_repo
Einfach oder? Neue Nutzer fügt man ebenfalls sehr einfach hinzu. Man kopiert einfach den Public-Key des Nutzers in das Schlüsselverzeichnis von gitolite.
oliver@gitclt: cd gitolite-admin
oliver@gitclt: cp ~/Downloads/nutzer2.pub keydir/
oliver@gitclt: git add keydir/nutzer2.pub
oliver@gitclt: git commit -m "Nutzer2 hinzugefügt" keydir/nutzer2.pub
oliver@gitclt: git push
oliver@gitclt: cd ..
Dies sollte für einen ersten Einstieg in git und gitolite reichen. Weitere Konfigurationsmöglichkeiten findet man in der
Doku zu gitolite.
Hello gitty.