Git
Chapters ▾ 2nd Edition

4.7 Git on the Server - GitWeb

GitWeb

Artıq sizin proyektinizə oxuma/yazma və sadəcə-oxuma girişiniz var və siz sadə veb bazasında görüntüləyə bilərsiniz. Git Gitweb adlanan və bunun üçün istifadə olunan GGI skriplə gəlir.

GitWebin veb bazalı istifadəçi interfeysi.
Figure 49. GitWebin veb bazalı istifadəçi interfeysi.

Əgər siz GitWebin proyektinizdə necə görünəcəyini görmək istəyirsinizsə, Git sizin siteminizdə lighttpd və ya webrick kimi yüngül veb serveri varsa müvəqqəti instasiyanı yandırmaq əmri ilə gələcək. Linux mexanizmlərində lighttpd çox vaxt quraşdırılmış olur, yəni siz proyekt qovluğunuza git instaweb yazaraq onu işə sala bilərsiniz. Lakin, Mac işlədirsinizsə Leopard Rubdən əvvəl quraşdırılmış olduğundan webrick sizə ən uyğun seçim olacaq. Instaweb-i lighttpd olmadan başlatmaq istəyirsinizsə onu --httpd seçimilə işə sala bilərsiniz.

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

O port 1234-də HTTPD serverini işə salır və daha sonra həmin səhifədə açılan veb browseri avtomatik işə salır. İşinizi bitirib serveri söndürmək istəyəndə isə eyni əmri --stop seçimi ilə edə bilərsiniz.

$ git instaweb --httpd=webrick --stop

Əgər siz öz komandanız və ya idarə etdiyiniz açıq mənbəli proyektlər üçün veb interfeys qoşmaq istəyirsinizsə, öz normal veb serverinizin dəstəklədiyi CGI skriptini qoşmalısınız. Bəzi Linux distribyutorlarının apt və ya dnf ilə quraşdırılabilən gitweb paketi var və siz ilk onları yoxlaya bilərsiniz. Biz manual və sürətli şəkildə Gitwebi işə salacağıq. İlkin olaraq sizə Gitweb ilə gələn Git mənbə kodunu əldə etmək və uyğum CGI skripti yaratmaq lazım olacaq:

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

Yadda saxlayın ki, GITWEB_PROJECTROOT-da Git deposunu tapmaq əmri dəyişkəndir. İndi siz VirtualHost’a əlavə edə biləcəyiniz Apache istifadəsi üçün CGI skripti yaratmaq lazımdır:

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

Təkrar qeyd etməliyik ki, GitWeb hər hansı bir CGI və ya Perl dəstəkli veb serverlə işə salına bilər; lakin siz başqa bir şey istifadə etmək istəsəniz onu da quraşdırmaq çətin olmayacaqdır. Bu halda siz http://gitserver/-a daxil olaraq onlayn depolarınıza baxa bilərsiniz.