Git
Chapters ▾ 2nd Edition

4.7 Git på servern - GitWeb

GitWeb

Nu när du har grundläggande läs- och skriv- samt enbart läsrättigheter till ditt projekt kanske du vill konfigurera enkel webbaserad visualisering. Git kommer med ett CGI-skript kallat GitWeb som ibland används för detta.

GitWebs webbaserada användargränssnitt.
Figur 49. GitWebs webbaserada användargränssnitt.

Om du vill se hur GitWeb ser ut för ett projekt har Git ett kommando för att starta en temporär instans om du har en lättviktig webserver på ditt system som t.ex. lighttpd eller webrick. På Linuxmaskiner är ofta lighttpd installerat så du kanske kan få igång den genom att köra git instaweb i din projektkatalog. Om du kör Mac, kommer Leopard med Ruby förinstallerat, så webrick kan vara ditt första val. För att starta instaweb med en icke-lighttpd-hanterare kan du köra den med flaggan --httpd.

$ git instaweb --httpd=webrick
[2009-02-21 10:02:21] INFO  WEBrick 1.3.1
[2009-02-21 10:02:21] INFO  ruby 1.8.6 (2008-03-03) [universal-darwin9.0]

Det starta upp en HTTPD-server på port 1234 och startar sedan automatiskt en webbläsare som visar den sidan. Det är ganska enkelt. När du är klar och vill stänga ner servern, kan du köra samma kommando med flaggan --stop:

$ git instaweb --httpd=webrick --stop

Om du vill köra webbgränssnittet på en server hela tiden för ditt team eller för ett öppen källkodsprojekt du är värd för, kommer du behöva konfigurera CGI-skriptet till att tillhandahållas av din vanliga webserver. Några Linuxdistrubutioner har ett gitweb-paket som du kan installera via apt eller dnf, så du kan pröva det först. Vi kommer gå igenom manuell installation av GitWeb ganska snabbt. Först behöver du källkoden till Git, i vilken GitWeb kommer med, och generera ett skräddarsytt CGI-skript:

$ git clone git://git.kernel.org/pub/scm/git/git.git
$ cd git/
$ make GITWEB_PROJECTROOT="/srv/git" prefix=/usr gitweb
    SUBDIR gitweb
    SUBDIR ../
make[2]: `GIT-VERSION-FILE' is up to date.
    GEN gitweb.cgi
    GEN static/gitweb.js
$ sudo cp -Rf gitweb /var/www/

Notera att du behöver tala om för kommandot var du hittar dina Gitrepon genom variabeln GITWEB_PROJECTROOT. Nu måste du få Apache att använda CGI för det skriptet, för vilket du kan lägga till en VirtualHost:

<VirtualHost *:80>
    ServerName gitserver
    DocumentRoot /var/www/gitweb
    <Directory /var/www/gitweb>
        Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
        AllowOverride All
        order allow,deny
        Allow from all
        AddHandler cgi-script cgi
        DirectoryIndex gitweb.cgi
    </Directory>
</VirtualHost>

Återigen, GitWeb kan tillhandahållas med vilken CGI- eller Perlkapabel webserver som helst, om du föredrar att använda något annat, skall det inte vara svårare att konfigurera. Nu skall du kunna besöka http://gitserver/ för att visa dina repon online.

scroll-to-top