SUSE下配置git注意事项
下载最新的git源码包,./configure、make、makeinstall,很顺利,期间的依赖包都可以用yast搞定。源码包中已经包含了gitweb。
本地访问的话问题不大,远程访问的话,需要注意2个问题:
1.资源库下的hooks文件夹下post-update.sample需要去掉后缀,成为post-update(高版本git才会这样),并chmod775post-update。
2.对资源库文件夹本身,也需要设置下访问权限,不然后边使用gitweb时会出现一刷新项目就不显示的问题。
gitweb比较好配置,直接修改gitweb.cgi文件就可以:
our$GIT="/usr/bin/git";
指向正确的git可执行文件位置
our$projectroot="/home/server/git-res";
指向正确的git资源库位置
our$export_ok="";
这个保持空就可以,如果资源库中有不希望别人通过gitweb就可以看到的项目,那么可以写上GITWEB_EXPORT_OK。之后在资源库中想要显示的文件夹中的.git下使用touchGITWEB_EXPORT_OK,它就会显示在gitweb中了。
另外还有很多选项可以自定义gitweb界面的一些信息。
设置好之后在apache2中的vhost.d中建立一个xxxx.conf文件(名字随便了,只要后缀是conf就可以),加入一台虚拟主机,配置如:
<VirtualHost*:8080>
ServerNamegitserver
DocumentRoot/var/www/gitweb
<Directory/var/www/gitweb>
OptionsExecCGI+FollowSymLinks+SymLinksIfOwnerMatch
AllowOverrideAll
orderallow,deny
Allowfromall
AddHandlercgi-scriptcgi
DirectoryIndexgitweb.cgi
</Directory>
</VirtualHost>
再在listen.conf中加入8080端口
重启下apach2就可以使用了。
另外只有用ssh方式访问git的用户才能有推送的权限(假设他对资源库有写的权限的话),其他方式的都会失败,git-daemon设置好参数应该也是可以的,但git本身的访问权限不好控制。
因此还是使用ssh来做访问控制。