Chapters ā–¾ 2nd Edition

4.7 Git na serveru - GitWeb

GitWeb

Když už mĆ”te ke svĆ©mu projektu nastavena zĆ”kladnĆ­ oprĆ”vněnĆ­ pro čtenĆ­/zĆ”pis a pouze pro čtenĆ­, možnĆ” budete chtĆ­t zřídit jednoduchĆ© zobrazenĆ­ formou webových strĆ”nek. Git se dodĆ”vĆ” s CGI scriptem nazvaným GitWeb, který se pro tento ĆŗÄel občas používĆ”.

Uživatelské webové rozhraní GitWeb.
Figure 49. Uživatelské webové rozhraní GitWeb.

Pokud si chcete vyzkouÅ”et, jak by GitWeb vypadal pro vÔŔ projekt, nabĆ­zĆ­ Git příkaz, jĆ­mž lze spustit dočasnou instanci — pokud mĆ”te v systĆ©mu nainstalovĆ”n lehký server jako lighttpd nebo webrick. Na linuxových počƭtačƭch je lighttpd často nainstalovĆ”n, takže se vĆ”m ho možnĆ” v adresÔři vaÅ”eho projektu povede spustit příkazem git instaweb. Pokud používĆ”te Mac, dodĆ”vĆ” se systĆ©m Leopard s předinstalovaným Ruby, takže bude asi nejlepŔí zkusit webrick. Pokud chcete instaweb spustit s něčƭm jiným než s lighttpd, použijte při spuÅ”těnĆ­ volbu --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]

TĆ­m se spustĆ­ HTTPD server na portu 1234 a pak se automaticky spustĆ­ webový prohlížeč, který se otevře na odpovĆ­dajĆ­cĆ­ strĆ”nce. NenĆ­ to nic obtížnĆ©ho. Až skončƭte a budete chtĆ­t server vypnout, spusÅ„te stejný příkaz s volbou --stop:

$ git instaweb --httpd=webrick --stop

Chcete-li pro svÅÆj tým nebo pro vĆ”mi hostovaný open-source projekt spustit webovĆ© rozhranĆ­ na serveru trvale, budete muset zprovoznit obsluhu tohoto CGI skriptu na vaÅ”em běžnĆ©m webovĆ©m serveru. V některých linuxových distribucĆ­ch existuje balƭček gitweb, který by se měl dĆ”t nainstalovat pomocĆ­ apt nebo yum. Takže nejdříve zkuste tuto možnost. RučnĆ­ instalaci skriptu probereme velmi rychle. Nejprve je třeba zĆ­skat zdrojový kód systĆ©mu Git, s nĆ­mž je GitWeb distribuovĆ”n, a vygenerovat přizpÅÆsobený CGI skript:

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

VÅ”imněte si, že příkazu musĆ­te pomocĆ­ proměnnĆ© GITWEB_PROJECTROOT sdělit, kde najde vaÅ”e gitovĆ© repozitÔře. NynĆ­ musĆ­te zajistit, aby Apache používal GitWeb jako CGI skript. Pro tento ĆŗÄel můžete přidat 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>

Zopakujme, že GitWeb může být obsluhovĆ”n jakýmkoliv webovým serverem podporujĆ­cĆ­m CGI nebo Perl. Pokud chcete použít nějaký jiný, nemělo by být jeho nastavenĆ­ obtížnĆ©. V tomto okamžiku byste měli být schopni prohlížet svĆ© repozitÔře online na adrese http://gitserver/.

scroll-to-top