Git
Chapters ▾ 2nd Edition

4.7 Гит на серверу - GitWeb

GitWeb

Сада када имате подешене основне начине приступа пројекту, можда ћете желети да подесите и једноставан визуелизатор базиран на вебу. Гит долази са CGI скриптом GitWeb која се понекад користи за ово.

GitWeb кориснички интерфејс базиран на вебу
Слика 49. GitWeb кориснички интерфејс базиран на вебу

Ако желите да погледате како би GitWeb изгледао на вашем пројекту, програм Гит долази са командом која може да подигне привремену инстанцу ако имате лаган сервер на систему као што је lighttpd или webrick. На Линукс машинама је често инсталиран lighttpd, тако да можете да га покренете тако што ћете укуцати git instaweb у директоријуму пројекта. Ако користите Мек, Леопард долази са већ инсталираним Рубијем, тако да би требало да имате највише поверења у webrick. Да бисте покренули instaweb помоћу неког другог обрађивача, а не са lighttpd, можете да га покренете помоћу опције --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]

Ово покреће HTTPD сервер на порту 1234 и онда аутоматски покреће веб прегледач који отвара ту страницу. Прилично је једноставно с ваше стране. Када сте завршили разгледање и желите да угасите сервер, можете да покренете исту команду користећи опцију --stop:

$ git instaweb --httpd=webrick --stop

Ако желите да се за ваш тим или за пројекат отвореног кода који хостујете веб интерфејс извршава на серверу све време, мораћете подесите да CGI скрипту сервира ваш уобичајени веб сервер. Неке Линукс дистрибуције имају пакет gitweb који можете да инсталирате путем apt или dnf, па можете прво то да пробате. Убрзо ћемо прећи на ручно инсталирање GitWeb. Прво, морате да преузмете изворни кôд програма Гит уз који долази GitWeb, па да генеришете CGI скрипту.

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

Обратите пажњу на то да комади морате навести где да пронађе ваше Гит репозиторијуме помоћу променљиве GITWEB_PROJECTROOT. Сада треба да подесите Apache тако да користи CGI за ту скрипту, за шта можете да додате 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>

Да поновимо, GitWeb може да се сервира било коијм веб сервером који је способан да извршава CGI или Perl; а чак и ако вам више одговара нешто друго, не би требало да буде превише тешко за подешавање. Сада би требало да можете да посетите http://gitserver/ и да на мрежи погледате своје репозиторијуме.