我正在使用Gitolite来管理我的git存储库。我还使用第三方Web应用程序来显示存储库。
但是,每次执行git push --all git@myserver.com:myproject
时,第三方Web应用程序都无法访问存储库文件。所以我需要每次chmod go+rx -R /path/to/the/repository/folder
运行以查看存储库。
我已设置git config core.sharedRepository all
但仍未记住git push
之后的权限。
我该如何解决这个问题?
答案 0 :(得分:2)
您可以定义一个hook to your gitolite environment,以便从由gitolite管理的裸仓库中更新非裸pos(使用正确的ACL)。
只要您不使用 the update
hook (在Gitolite V3中),您就可以定义一个post-receive
钩子来执行这些任务。
话虽如此,请检查您的gitolite.rc中的variable REPO_UMASK
UMASK
是否与此问题有关:
$UMASK
,八进制,默认0077gitolite使用的默认
UMASK
使所有repos及其内容具有rwx------
权限。
希望运行gitweb
的人意识到这不会发生 处理此问题的正确方法是将此变量更改为0027(这将获得rwxr-x---
),然后将运行Web服务器的apache或httpd用户添加为'gitolite'组的成员。请注意语法;前导0是必需的。如果在安装完成后更改它,则还必须执行一些
chmod
来调整已创建的文件和目录的权限。
(注意:REPO_MASK
获得UMASK
GitoliteV3 or 'g3'}