gitolite + cgit:未找到存储库



我已经设置并配置了gitolite,并希望为其配置cgit Web界面。

问题:

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

未找到存储库

设置

创建新存储库时gitolite/home/git/repositories 下自动为其创建一个相应的目录。 cgit配置为使用以下方法读取这些存储库:

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

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

git clone --bare user@server:repo

它似乎有效。我真的不想每次签入新存储库时都手动执行此操作。为什么gitolite创建的存储库还没有露?如何实现自动化?

事实证明 -

在尝试多次验证之后 - 这只是文件系统权限问题。尝试后

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

要强制我的 Apache 用户拥有所有权 运行cgit ,存储库将显示在 Web 界面中。

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

$REPO_UMASK=0027

注意:使用Gitolite V3或"g3",这将是(见文档):

$UMASK=0027

这与我之前遇到的权限问题类似。我使用脚本来修复 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

最新更新