SUSE下配置git注意事项

chaocc0xs 2011-07-21

下载最新的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来做访问控制。

相关推荐