Chapters ā–¾ 2nd Edition

4.7 Gitć‚µćƒ¼ćƒćƒ¼ - GitWeb

GitWeb

ć“ć‚Œć§ć€čŖ­ćæę›øćåÆčƒ½ćŖć‚¢ć‚Æć‚»ć‚¹ę–¹ę³•ćØčŖ­ćæč¾¼ćæå°‚ē”Øć®ć‚¢ć‚Æć‚»ć‚¹ę–¹ę³•ć‚’ē”Øę„ć§ćć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć—ćŸć€‚ę¬”ć«ć»ć—ććŖć‚‹ć®ćÆć€ć‚¦ć‚§ćƒ–ćƒ™ćƒ¼ć‚¹ć§ć®é–²č¦§ę–¹ę³•ć§ć—ć‚‡ć†ć‹ć€‚ Git には標準で GitWeb という CGI ć‚¹ć‚ÆćƒŖćƒ—ćƒˆćŒä»˜å±žć—ć¦ćŠć‚Šć€ć“ć‚Œć‚’ä½æć†ć“ćØćŒć§ćć¾ć™ć€‚

č‡Ŗåˆ†ć®ćƒ—ćƒ­ć‚øć‚§ć‚Æćƒˆć§ćŸć‚ć—ć« GitWeb ć‚’ä½æć£ć¦ćæć‚ˆć†ćØć„ć†äŗŗć®ćŸć‚ć«ć€äø€ę™‚ēš„ćŖć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ć‚’ē«‹ć”äøŠć’ć‚‹ćŸć‚ć®ć‚³ćƒžćƒ³ćƒ‰ćŒ Git ć«ä»˜å±žć—ć¦ć„ć¾ć™ć€‚ć“ć‚Œć‚’å®Ÿč”Œć™ć‚‹ć«ćÆ lighttpd 悄 webrick ćØć„ć£ćŸč»½é‡ćŖć‚µćƒ¼ćƒćƒ¼ćŒåæ…č¦ć§ć™ć€‚ Linux ćƒžć‚·ćƒ³ćŖć‚‰ć€ćŸć„ć¦ć„ lighttpd ćŒć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć•ć‚Œć¦ć„ć¾ć™ć€‚ć“ć‚Œć‚’å®Ÿč”Œć™ć‚‹ć«ćÆć€ćƒ—ćƒ­ć‚øć‚§ć‚Æćƒˆć®ćƒ‡ć‚£ćƒ¬ć‚ÆćƒˆćƒŖć§ git instaweb と打ご込みます。 Mac ć®å “åˆćŖć‚‰ć€Leopard には Ruby ćŒćƒ—ćƒ¬ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć•ć‚Œć¦ć„ć¾ć™ć€‚ć—ćŸćŒć£ć¦ 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 ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć‚’čØ­å®šć—ć¦é€šåøøć®ć‚¦ć‚§ćƒ–ć‚µćƒ¼ćƒćƒ¼ć«é…ē½®ć—ćŖć‘ć‚Œć°ćŖć‚Šć¾ć›ć‚“ć€‚ Linux ć®ćƒ‡ć‚£ć‚¹ćƒˆćƒŖćƒ“ćƒ„ćƒ¼ć‚·ćƒ§ćƒ³ć®äø­ć«ćÆć€apt 悄 yum などで gitweb ćƒ‘ćƒƒć‚±ćƒ¼ć‚øćŒē”Øę„ć•ć‚Œć¦ć„ć‚‹ć‚‚ć®ć‚‚ć‚ć‚Šć¾ć™ć€‚ć¾ćšćÆćć‚Œć‚’ęŽ¢ć—ć¦ćæć‚‹ćØć‚ˆć„ć§ć—ć‚‡ć†ć€‚ 手動での GitWeb ć®ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć«ć¤ć„ć¦ć€ć•ć£ćØęµć‚Œć‚’čŖ¬ę˜Žć—ć¾ć™ć€‚ まずは Git ć®ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć‚’å–å¾—ć—ć¾ć—ć‚‡ć†ć€‚ćć®äø­ć« 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/

ć‚³ćƒžćƒ³ćƒ‰ć‚’å®Ÿč”Œć™ć‚‹éš›ć«ć€Git ćƒŖćƒć‚øćƒˆćƒŖć®å “ę‰€ć‚’ GITWEB_PROJECTROOT å¤‰ę•°ć§ęŒ‡å®šć—ćŖć‘ć‚Œć°ćŖć‚‰ćŖć„ć“ćØć«ę³Øę„ć—ć¾ć—ć‚‡ć†ć€‚ さて、欔は Apache ć«ć“ć®ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć‚’å‡¦ē†ć•ć›ć‚‹ć‚ˆć†ć«ć—ćŖć‘ć‚Œć°ćŖć‚Šć¾ć›ć‚“ć€‚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/ ć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚Œć°ćƒŖćƒć‚øćƒˆćƒŖć‚’ć‚Ŗćƒ³ćƒ©ć‚¤ćƒ³ć§č¦‹ć‚‰ć‚Œć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć—ćŸć€‚

scroll-to-top