Chapters ā–¾ 2nd Edition

4.7 Git на сервере - GitWeb

GitWeb

Š¢ŠµŠæŠµŃ€ŃŒ, когГа Šŗ вашему ŠæŃ€Š¾ŠµŠŗŃ‚Ńƒ настроен Š“Š¾ŃŃ‚ŃƒŠæ на чтение/запись Šø Ń‚Š¾Š»ŃŒŠŗŠ¾ на чтение, Š²ŠµŃ€Š¾ŃŃ‚Š½Š¾, вы захотите Š½Š°ŃŃ‚Ń€Š¾ŠøŃ‚ŃŒ простой веб-Š²ŠøŠ·ŃƒŠ°Š»ŠøŠ·Š°Ń‚Š¾Ń€. Š”Š»Ń ŃŃ‚Š¾Š¹ цели в комплекте с Git ŠæŠ¾ŃŃ‚Š°Š²Š»ŃŠµŃ‚ŃŃ CGI-сценарий GitWeb.

Веб-интерфейс GitWeb
Рисунок 49. Веб-интерфейс GitWeb

Если вы хотите ŠæŠ¾ŃŠ¼Š¾Ń‚Ń€ŠµŃ‚ŃŒ как Š±ŃƒŠ“ет Š²Ń‹Š³Š»ŃŠ“ŠµŃ‚ŃŒ ваш проект в GitWeb, в Git ŠµŃŃ‚ŃŒ ŃŃ‚Š°Š½Š“Š°Ń€Ń‚Š½Š°Ń команГа Š“Š»Ń запуска временного ŃŠŗŠ·ŠµŠ¼ŠæŠ»ŃŃ€Š°, оГнако она Ń‚Ń€ŠµŠ±ŃƒŠµŃ‚ Š½Š°Š»ŠøŃ‡ŠøŃ ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½Š½Š¾Š³Š¾ веб-сервера, такого как lighttpd или webrick. Как правило, на Š¼Š°ŃˆŠøŠ½Š°Ń… с Linux lighttpd уже ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½, ŠæŠ¾ŃŃ‚Š¾Š¼Ńƒ вы сможете его Š·Š°ŠæŃƒŃŃ‚ŠøŃ‚ŃŒ, выполнив команГу git instaweb в каталоге с вашим проектом. Если вы ŠøŃŠæŠ¾Š»ŃŒŠ·ŃƒŠµŃ‚Šµ Mac, Leopard ŠæŠ¾ŃŃ‚Š°Š²Š»ŃŠµŃ‚ŃŃ с ŠæŃ€ŠµŠ“ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½Š½Ń‹Š¼ Ruby, ŠæŠ¾ŃŃ‚Š¾Š¼Ńƒ webrick может Š±Ń‹Ń‚ŃŒ Š»ŃƒŃ‡ŃˆŠøŠ¼ выбором. Чтобы Š·Š°ŠæŃƒŃŃ‚ŠøŃ‚ŃŒ instaweb не с ligttpd ŠøŃŠæŠ¾Š»ŃŒŠ·ŃƒŠ¹Ń‚Šµ параметр --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-сценарий на вашем веб-сервере. Š’ некоторых Š“ŠøŃŃ‚Ń€ŠøŠ±ŃƒŃ‚ŠøŠ²Š°Ń… Linux ŠµŃŃ‚ŃŒ пакет gitweb, который вы можете ŃƒŃŃ‚Š°Š½Š¾Š²ŠøŃ‚ŃŒ, ŠøŃŠæŠ¾Š»ŃŒŠ·ŃƒŃ apt или dnf, так что вы можете ŠæŠ¾ŠæŃ€Š¾Š±Š¾Š²Š°Ń‚ŃŒ сначала ŃŃ‚Š¾Ń‚ способ. ŠœŃ‹ же вкратце рассмотрим Ń€ŃƒŃ‡Š½ŃƒŃŽ ŃƒŃŃ‚Š°Š½Š¾Š²ŠŗŃƒ GitWeb. Š”Š»Ń начала вам нужно ŃŠŗŠ°Ń‡Š°Ń‚ŃŒ исхоГный коГ Git, с которым ŠæŠ¾ŃŃ‚Š°Š²Š»ŃŠµŃ‚ŃŃ GitWeb, Šø ŃŠ³ŠµŠ½ŠµŃ€ŠøŃ€Š¾Š²Š°Ń‚ŃŒ CGI-сценарий поГ ŃŠ²Š¾ŃŽ ŃŠøŃŃ‚ŠµŠ¼Ńƒ:

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

ŠŸŠ¾Š¼Š½ŠøŃ‚Šµ, что вы Голжны ŃƒŠŗŠ°Š·Š°Ń‚ŃŒ команГе гГе расположены ваши репозитории Git с ŠæŠ¾Š¼Š¾Ń‰ŃŒŃŽ переменной GITWEB_PROJECTROOT. Š¢ŠµŠæŠµŃ€ŃŒ вы Голжны Š½Š°ŃŃ‚Ń€Š¾ŠøŃ‚ŃŒ Apache на использование ŃŃ‚Š¾Š³Š¾ CGI-ŃŃ†ŠµŠ½Š°Ń€ŠøŃ, Š“Š»Ń чего вы можете Š“Š¾Š±Š°Š²ŠøŃ‚ŃŒ Š²ŠøŃ€Ń‚ŃƒŠ°Š»ŃŒŠ½Ń‹Š¹ хост:

<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/ Š“Š»Ń просмотра Š²Š°ŃˆŠøŃ… репозиториев онлайн.

scroll-to-top