Git
Chapters ▾ 2nd Edition

4.7 Git na strežniku - GitWeb

GitWeb

Sedaj, ko imate osnovno bralno/pisalni in samo-bralni dostop do vašega projekta, boste morda želeli nastaviti ensotaven spletno osnovani vizualizator. Git prihaja s skripto CGI imenovano GitWeb, ki je včasih uporabljena za to.

The GitWeb web-based user interface.
Figure 49. The GitWeb web-based user interface.

Če želite preveriti, kako bi GitWeb izgledal za vaš projekt, Git prihaja z ukazom za pogon začasne instance, če imate lahki strežnik na vašem sistemu, kot je lighttpd ali webrick. Na Linux napravah, lighttpd je pogostokrat nameščen, tako da ga lahko morda dobite, da poženete git instaweb v vašem projektnem direktoriju. Če poganjate Mac, prihaja Leopard prenameščen z Ruby-jem, tako da webrick je lahko vaša najboljša stava. Da poženete instaweb z ne-lighttpd handler-jem, ga lahko poeženete z opcijo --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]

Da poženete strežnik HTTPD na portu 1234 in nato avtomatično poženete spletni brskalnik, da se odpre na tej strani. Je precej enostavno na vašem koncu. Ko končate in želite zapreti strežnik, lahko poženete enak ukaz z opcijo --stop:

$ git instaweb --httpd=webrick --stop

Če želite pognati spletni vmesnik na strežniku ves čas za vso vašo ekipo ali za odprtokodni projekt, ki ga gostujete, boste morali nastaviti skripto CGI, ki je servirana na vašem običajnem spletnem strežniku. Nekatere Linux distribucije imajo paket gitweb, ki ga morda lahko namestite preko apt ali yum, tako da morda želite poskusiti to najprej. Šli bomo skozi namestitev GitWeb ročno zelo hitro. Najprej morate dobiti Git izvorno kodo, s katero GitWeb prihaja in generirati skripto CGI po meri:

$ git clone git://git.kernel.org/pub/scm/git/git.git
$ cd git/
$ make GITWEB_PROJECTROOT="/opt/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/

Bodite pozorni, ker morate povedati ukazu, kje najti vaše Git repozitorije s spremenljivko GITWEB_PROJECTROOT. Sedaj morate narediti Apache, da uporablja CGI za to skripto za katero lahko dodate 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>

Ponovno, GitWeb je lahko serviran s katerimkoli CGI ali Perl zmožnim spletnim strežnikom; če raje uporabljate kaj drugega, ga ne bi smelo biti pretežko nastaviti. Na tej točki, bi morali videti http://gitserver/ za ogled vaših repozitorijev na spletu.