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