Git
Chapters ▾ 2nd Edition

4.7 Git na strežniku - GitWeb

GitWeb

Sedaj, ko imate dostop osnovnega branja/pisanja in samo branja do svojega projekta, boste morda želeli nastaviti enostaven spletno osnovani vizualizator. Git prihaja s skriptom CGI imenovanim GitWeb, ki je včasih uporabljen za to.

Spletno osnovani uporabniški vmesnik GitWeb
Slika 49. Spletno osnovani uporabniški vmesnik GitWeb

Če želite preveriti, kako bi GitWeb izgledal za vaš projekt, Git vsebuje ukaz za pogon začasne instance, če imate na svojem sistemu enostaven strežnik, kot je lighttpd ali webrick. Na napravah Linux je lighttpd pogostokrat nameščen, tako da ga lahko morda dobite, če poženete git instaweb v vašem projektnem direktoriju. Če poganjate macOS, ima Leopard že vnaprej nameščen Ruby, tako da je webrick lahko vaša najboljša izbira. Da poženete instaweb s krmilnikom brez lighttpd, ga lahko poženete z možnostjo --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]

To požene strežnik HTTPD na vratih 1234 in nato avtomatično poženete spletni brskalnik, ki se odpre na tej strani. Z vaše strani je to precej enostavno. Ko končate in želite strežnik zapreti, lahko poženete enak ukaz z možnostjo --stop:

$ git instaweb --httpd=webrick --stop

Če želite poganjati spletni vmesnik na strežniku ves čas za vso svojo ekipo ali za odprtokodni projekt, ki ga gostujete, boste morali nastaviti skript CGI, ki ga postreže vaš običajni spletni strežnik. Nekatere distribucije Linux imajo paket gitweb, ki ga lahko morda namestite preko apt ali dnf, tako da morda poskusite najprej to. Zelo hitro bomo šli skozi ročno namestitev GitWeba. Najprej morate dobiti izvorno kodo Git, s katero prihaja GitWeb, in generirati skript CGI po meri:

$ git clone https://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/

Bodite pozorni, saj morate ukazu povedati s spremenljivko GITWEB_PROJECTROOT, kje najde vaše repozitorije Git. Sedaj morate pripraviti Apache, da uporabi CGI za ta skript, za kar 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 strežen s katerimkoli spletnim strežnikom, ki zmore CGI ali Perl; če raje uporabljate kaj drugega, ga ne bi smelo biti pretežko nastaviti. Na tej točki, bi morali uspeti obiskati http://gitserver/ za ogled vaših repozitorijev na spletu.

scroll-to-top