Chapters ▾ 2nd Edition

4.7 Git on the Server - GitWeb

GitWeb

Noudat jy basiese lees/skryf- en leesalleen-toegang (read/write and read-only access) tot jou projek het, wil jy dalk 'n eenvoudige webgebaseerde visualiseerder (web-based visualizer) opstel. Git word vergesel van 'n CGI-skrip genaamd GitWeb wat soms hiervoor gebruik word.

The GitWeb web-based user interface
Figure 49. Die GitWeb webgebaseerde gebruikerskoppelvlak (web-based user interface)

As jy wil kyk hoe GitWeb vir jou projek sal lyk, kom Git met 'n opdrag om 'n tydelike instansie aan die gang te sit as jy 'n liggewig webbediener (lightweight web server) soos lighttpd of webrick op jou stelsel het. Op Linux-masjiene is lighttpd dikwels reeds geïnstalleer, so jy mag dalk in staat wees om dit te laat loop deur git instaweb in jou projekgids (project directory) te tik. As jy macOS gebruik, kom Leopard vooraf geïnstalleer met Ruby, so webrick is dalk jou beste opsie. Om instaweb met 'n nie-lighttpd hanteerder (handler) te begin, kan jy dit met die --httpd opsie uitvoer.

$ 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]

Dit begin 'n HTTPD-bediener op poort 1234 en begin dan outomaties 'n webblaaier (web browser) wat op daardie bladsy oopmaak. Dit is redelik maklik van jou kant af. Wanneer jy klaar is en die bediener wil afskakel, kan jy dieselfde opdrag met die --stop opsie uitvoer:

$ git instaweb --httpd=webrick --stop

As jy die webkoppelvlak (web interface) heeltyd op 'n bediener wil laat loop vir jou span of vir 'n oopbronprojek (open source project) wat jy huisves, sal jy die CGI-skrip moet opstel om deur jou normale webbediener bedien te word. Sommige Linux-verspreidings (distributions) het 'n gitweb pakket wat jy moontlik via apt of dnf kan installeer, so jy sal dalk eers dit wil probeer. Ons sal baie vinnig deur die handmatige installasie van GitWeb stap. Eerstens moet jy die Git-bronkode (source code) kry, waarmee GitWeb saamkom, en die pasgemaakte CGI-skrip genereer:

$ 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/

Let daarop dat jy die opdrag moet vertel waar om jou Git-bewaarplekke (repositories) te vind met die GITWEB_PROJECTROOT veranderlike (variable). Nou moet jy Apache CGI vir daardie skrip laat gebruik, waarvoor jy 'n VirtualHost kan byvoeg:

<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>

Weereens, GitWeb kan bedien word met enige webbediener wat CGI of Perl ondersteun; as jy verkies om iets anders te gebruik, behoort dit nie moeilik te wees om op te stel nie. Op hierdie stadium behoort jy http://gitserver/ te kan besoek om jou bewaarplekke (repositories) aanlyn te bekyk.