Git现在如日中天,在企业中最好用的服务器是Gerrit。它不仅提供了极强的认证和权限控制,而且它的代码审阅功能也极其出色。
Gitweb是Git缺省的代码网上浏览的一个模块,附带在Git发布版本中。
这里聊一下,如何不用Apache服务器使Gitweb在Gerrit中工作。这个在搭实验和演示环境中特别有用。
有关Gerrit具体安装可以参见蒋鑫的Git权威指南一书,或者Gerrit官方说明。
Gitweb实际上是用perl写的CGI脚本,一般都是在Apache中使用。在Gerrit中,它也可以直接被调用转换成HTML显示。
但是如果你用“Git for Windows”(mingsys)来安装Git环境的话有两个问题:
gitweb.cgi
不能直接被执行。知道了问题,解决起来就相对简单了点。
首先下载对应的CGI模块,http://search.cpan.org/~markstos/CGI/,现在是CGI 3.59版本
展开后,把lib
库拷入Git标准安装的Perl lib目录/usr/lib/perl5/site_perl/
$ tar -ztvf ~/Downloads/CGI.pm-3.59.tar.gz CGI.pm-3.59/lib # 只要这几个就可以了
$ mv CGI.pm-3.59/lib/* /usr/lib/perl5/site_perl
现在在命令行下运行gitweb.cgi
就可以成功了。
$ "/c/Program Files/git/share/gitweb/gitweb.cgi"
下一步就是弄一个脚本gitweb.bat
把gitweb.cgi
包装一下,使它成为Windows命令。
$ cat "/c/Program Files/git/share/gitweb/gitweb.bat"
@echo off
"C:\Program Files\Git\bin\perl" "C:\Program Files\Git\share\gitweb\gitweb.cgi %*
其中%*
就是把参数传递进去。
最后就是在Gerrit中配置它了。
$ git config --file $site_path/etc/gerrit.config gitweb.cgi "/c/Program Files/git/share/gitweb/gitweb.bat"
这样就可以了。重新启动Gerrit脚本,你就可以看到了。