2

我正在使用 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

我怎么解决这个问题?

4

1 回答 1

2

您可以为 gitolite 环境定义一个挂钩,以便从 gitolite 管理的裸仓库更新非裸 pos(使用正确的 ACL)。

只要您不使用挂钩update在 Gitolite V3 中),您就可以定义一个post-receive挂钩来执行这些任务。

话虽如此,还要检查变量是否REPO_UMASK UMASK在您的 gitolite.rc 中与此问题有任何关系:

$UMASK, 八进制, 默认 0077

gitolite 使用的默认设置UMASK使所有 repos 及其内容都具有rwx------权限。
想跑步的人gitweb意识到这是行不通的。
处理这个问题的正确方法是将此变量更改为 0027(这会让你得到rwxr-x---),然后将运行网络服务器的 apache 或 httpd 用户添加为“gitolite”组的成员。

请注意语法;前导 0 是必需的。如果您在安装完成后更改它,您还必须做一些chmod调整以调整已创建的文件和目录的权限。

(注意:与REPO_MASKGitoliteV3或 'g3'一起获得)UMASK

于 2011-03-28T05:44:38.880 回答