Notation
Der Bezeichner $key
muss immer durch den Namen der Projektliste ersetzt werden.
Also z.B. public, private, etc.
Mit /home/git/
ist das Home-Verzeichnis des gitolite-Benutzers gemeint,
falls dieses bei Ihnen anders ist, müssen Sie die Anleitung entsprechend anpassen.
Installation des Programms
Nach der Installation von gitolite sollte man in /home/git/.gitolite.rc
die Variable $REPO_UMASK
auf mindestens 0027 setzen,
damit CGit auf die Repositories zugreifen kann.
Desweitern muss in dieser Konfigurationsdatei die Variable $GL_GITCONFIG_KEYS
auf
"cgit\..*"
gesetzt werden.
Danach müssen Sie die Datei
/home/git/repositories/gitolite-admin.git/hooks/post-update.secondary
erstellen (mit den entsprechenden Rechten!)
und diese Zeilen einfügen:
#!/bin/bash
python /home/git/cgit-update.py /home/git/repositories /home/git
Zuletzt wird cgit-update.py
aus
gitolite-cgit
nach
/home/git
kopiert.
Einrichten von CGit
In der Datei /etc/cgitrc
muss neben den üblichen Einstellungen
include=$REPOLIST
gesetzt werden, um die Liste mit den Repositories entsprechend der Umgebungsvariable zu laden.
Einrichten von Lighttpd
Irgendwo muss via
server.modules += ( "mod_setenv" )
dieses Model eingebunden worden sein.
Unter conf-available/50-$key.conf
kann man nun dies eintragen:
url.redirect += ( "^/git$" => "/git/" )
$HTTP["url"] =~ "^/git/" {
url.redirect += ( "^/git/$" => "/git/cgit.cgi" )
alias.url += (
"/git/cgit.cgi" => "/usr/lib/cgi-bin/cgit.cgi",
"/git/" => "/usr/share/cgit/"
)
cgi.assign = (".cgi" => "")
setenv.add-environment = ("REPOLIST" => "/home/git/cgit.$key.list")
index-file.names = ("/git/cgit.cgi")
}
Dabei ist
setenv.add-environment = ("REPOLIST" => "/home/git/cgit.$key.list")
die zentrale Komponente, die dieses diesem Setup ausmacht.
Repositories zum Anzeigen spezifizieren
Man kann ein Repository nun via einem solchen Konfigurationseintrag anzeigen lassen:
gitolite-cgit "Yasin Zähringer" = "Gitolite cgit helper"
repo gitolite-cgit
RW+ = yasin
config cgit.listname = "public"
config cgit.section = "Dev"