我安装了 redmine 的 Ubuntu 10.04 服务器,还安装了 git,我正在使用 gitolite。
当我从用户 PC 推送到服务器时,一切都很好,关于 git 的观点。但是要从 redmine 中查看存储库,每次我需要运行时:chmod o+rw -R /path/to/the/repository/folder
然后我可以从 redmine 中查看存储库。但这很烦人,每次我推送到服务器时都这样做。
我想做一个 cron-job 来自动完成,但我认为这不是一个干净的解决方案。
git config core.sharedRepository all
从git-config
文档中:
当
group
(或true
)时,存储库可在组中的多个用户之间共享(确保所有文件和对象都是组可写的)。当all
(或world
或everybody
)时,所有用户都可以读取存储库,此外还可以组共享。当umask
(或false
)时,git 将使用 umask(2) 报告的权限。当0xxx
, where0xxx
是八进制数时,存储库中的文件将具有此模式值。0xxx
将覆盖用户的 umask 值(而其他选项只会覆盖用户的 umask 值的请求部分)。示例:0660
将使所有者和组可以读/写 repo,但其他人无法访问(相当于group
除非 umask 是 eg0022
)。0640
是组可读但不可组写的存储库。请参阅 git-init(1)。默认为假。
要让 Redmine 访问所有 gitolite 托管的存储库,您需要修改$HOME/.gitolite.rc
:
$REPO_UMASK = 0027; #=> 'rwxr-x---'
# use 0022 instead to give rx permissions to others (not recommended)
然后将运行托管 redmine 的 Web 服务器的用户添加到“gitolite”组
最后,做chmod -R g+rx $HOME/repositories
在Gitolite " rc
" 文件中查看更多文档。