gitolite + cgit:找不到存储库

时间:2011-05-09 14:55:53

标签: git version-control dvcs gitolite cgit

我已设置并配置gitolite,并希望为其配置cgit网络界面。

问题:

使用cgit浏览目录时出现错误:

  

找不到存储库

设置

创建新存储库时gitolite会在/home/git/repositories下自动为其创建相应的目录。 cgit configuered使用以下内容阅读这些存储库:

project-list=/home/git/projects.list 
scan-path=/home/git/repositories

问题是这些存储库似乎不是存储库。如果我使用

手动克隆其中一个存储库
git clone --bare user@server:repo
它似乎有效。每次签入新存储库时,我都不想手动执行此操作。为什么gitolite 创建的存储库不存在?我该如何实现自动化?

2 个答案:

答案 0 :(得分:5)

结果 - 尝试多次验证后 - 这只是一个文件系统权限问题。尝试后

chown -R www-data:www-data repositories/repo

强制所有权进入运行cgit的apache用户,存储库显示在Web界面中。

正确的解决方案是将apache用户添加到git组,并将umask中的值.gitolite.rc更改为

$REPO_UMASK=0027

注意:使用Gitolite V3 or 'g3',即see doc):

$UMASK=0027

答案 1 :(得分:0)

与之前遇到的许可问题类似。 我使用脚本来修复git存储库的权限。

脚本:fix_perm_cgit.sh

#!/bin/sh
reponame="$1"
if [ ! -d "$reponame" ]; then
   echo "missign repo_name"
   exit 1
fi


find "$reponame" -type d | while read fn ; do chmod og+rx $fn ; echo "d-> $fn" ; done
find "$reponame" -type f | while read fn ; do chmod og+r $fn ; echo "f-> $fn" ; done