openSuSE通过build service 为cgit打了包,在这里:http://download.opensuse.org/repositories/devel:/tools:/scm/
这个包包含以下文件:
linux:/srv/www/cgi-bin/cgit # rpm -ql cgit /etc/cgitrc /srv/www/cgi-bin/cgit /srv/www/cgi-bin/cgit/cgit.cgi /srv/www/htdocs/cgit /srv/www/htdocs/cgit/cgit.css /srv/www/htdocs/cgit/cgit.png /usr/share/man/man5/cgitrc.5.gz
所以呢,如果把 /srv/www/htdocs/cgit配置为一个虚拟主机的document-root,(就如<git.poetpalace.org>那样)
在apache2上要这样写
<VirtualHost *> DocumentRoot /srv/www/htdocs/cgit ServerName git.poetpalace.org <Directory "/srv/www/htdocs/cgit/"> AllowOverride None Options ExecCGI DirectoryIndex /cgi-bin/cgit/cgit.cgi Order allow,deny Allow from all </Directory> </VirtualHost>
而在lighttpd上,是这样:
$HTTP["host"] == "git.poetpalace.org" { server.document-root = "/srv/www/htdocs/cgit" index-file.names = ( "cgit.cgi" ) cgi.assign = ( "cgit.cgi" => "/srv/www/cgi-bin/cgit/cgit.cgi" ) }
lighttpd有一点奇怪的是,document-root下面一定要有个cgit.cgi的文件,内容是什么没关系,但是一定要有,不然会报 404 NOT FOUND。 touch cgit.cgi 就可以了。
然后需要按照虚拟主机的路径,修改/etc/cgitrc中css和logo选项的值,也就是在虚拟主机中的路径,在我的环境里面是这样的
css=/cgit.css logo=/cgit.png
注意不要忘了前面的’/’。
然后翻到文件的尾部,上面有配置repo的例子,像这样:
repo.url=libwp repo.path=/srv/git/libwp repo.desc=libwp is library that warps common functions in standard C, Linux system, POSIX, and BSD socket. repo.owner=lyre@poetpalace.org
这个时候,打开浏览器察看你的页面,应该就可以看到cgit工作了。
嗯,效果好像还不是特别好,没有语法高亮。
编辑你的css文件,加入
table.list td a.ls-dir { color: #00f; }
在tree列表下的目录颜色就会变成蓝色的了。假如没有变色,那是浏览器缓存的css文件还没刷新。
然后来处理语法高亮,cgit包含了一个syntax-highlighting.sh的脚本,不过它使用了一个highlight的第三方程序,需要现在这里下载和安装:http://www.andre-simon.de/
编辑/etc/cgitrc,加入source-filter或者repo.source-filter选项(看你是应用到全部repo还是某一个特定的repo咯),值就是syntax-highlighting.sh脚本的位置。
打开syntax-highlighting.sh,上面有一块注释了的样式表,把这一块复制到你的css文件中,不然语法高亮不会起作用。
打开浏览器察看你的git源吧,注意css文件的缓存。