Git
Chapters ▾ 2nd Edition

4.7 Git on the Server - GitWeb

GitWeb

Şimdi temel okuma/yazma ve salt okuma erişiminiz olduğuna göre, basit bir web tabanlı görselleştirici kurmak isteyebilirsiniz. Git bazen bu iş için kullanılan GitWeb adlı bir CGI betiği ile birlikte gelir.

GitWeb ağ-tabanlı kullanıcı arayüzü.
Görsel 49. GitWeb ağ-tabanlı kullanıcı arayüzü.

Eğer sisteminizde lighttpd veya webrick gibi hafif bir ağ sunucusuna sahipseniz ve GitWeb’in projeniz için nasıl görüneceğini kontrol etmek istiyorsanız, Git bir geçici bir örnek başlatmak için bir komut içerir. Linux makinelerinde genellikle lighttpd yüklüdür, bu nedenle projeniz dizininde git instaweb yazarak bunu çalıştırabilirsiniz. Mac’te ise Ruby ile önceden yüklenmiş gelen Leopard bulunduğu için, webrick belki en iyi seçeneğiniz olabilir. instaweb 'i lighttpd olmayan bir işleyici ile başlatmak için --httpd seçeneği ile çalıştırabilirsiniz.

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

Bu komut, önce 1234 portunda bir HTTPD sunucusunu ve ardından otomatik olarak bu sayfada açılan bir web tarayıcısını başlatır. Gördüğünüz gibi yapmanız gereken pek bir şey yok. İşiniz bittiğinde ve sunucuyu kapatmak istediğinizde, aynı komutu --stop seçeneği ile çalıştırabilirsiniz:

$ git instaweb --httpd=webrick --stop

Eğer web arayüzünü, ekibiniz veya barındırdığınız bir açık kaynak projesi için, sürekli bir sunucuda çalıştırmak istiyorsanız, CGI betiğini normal web sunucunuz tarafından sunulacak şekilde kurmanız gerekecektir. Bazı Linux dağıtımlarında apt veya dnf üzerinden kurabileceğiniz bir gitweb paketi bulunabilir, bu nedenle önce bunu denemek isteyebilirsiniz. GitWeb’i nasıl hızlı bir şekilde manuel olarak kuracağınızı anlatacağız. İlk olarak, GitWeb ile birlikte gelen Git kaynak kodunu elde etmeniz ve özel CGI betiğini oluşturmanız gerekiyor:

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

Dikkat edin, komuta GITWEB_PROJECTROOT değişkeni ile Git depolarınızı nerede bulacağınızı belirtmeniz gerekmektedir. Şimdi, Apache’nin bu betik için CGI’yi kullanmasını sağlamalısınız, bunun için bir sanal sunucu (virtualHost) ekleyebilirsiniz:

<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 herhangi bir CGI veya Perl yetenekli web sunucusu ile sunulabilir, yine de başka bir şey kullanmayı tercih ediyorsanız, kurulumu zor olmasa gerek. Bu noktada, repolarınızı çevrimiçi görüntülemek için http://gitserver/ adresini ziyaret edebilmelisiniz.

scroll-to-top