【发布时间】:2019-11-19 00:13:23
【问题描述】:
我们正在以一种有点奇怪的模式开发一个 git 存储库: 我们在远程服务器上有一个 git 目录。此外,我们在这台服务器上安装了 gerrit,并在 gerrit git/ 目录中创建了指向同一个 git 存储库的符号链接。 一些开发者使用 gerrit(提交被推送到 HEAD:refs/for/master),一些使用远程分支,直接推送到 git 存储库(git push origin remote_branch)。
通过 gerrit 工作时 - 一切正常。提交被推送到主分支并合并。
但是,直接推送到 git 存储库失败:
- 无法推送到主分支。我们收到权限被拒绝的消息。 远程:错误:无法更新 ref 'refs/heads/master':无法附加到 './logs/refs/heads/master':权限被拒绝
- 推送到其他远程分支有时会失败,并显示消息指出某些 SHA1 blob 由于权限问题而无法写入其目录:
查看服务器上的 git 存储库时:日志、packed-refs、描述目录用户/组是 root:root 而不是 git。进一步看,还有其他几个目录和对象归根拥有。
- 是否因为 gerrit 而更改了目录所有者?
- 我们可以将日志、packed-refs、描述目录所有者改回 git:git 吗?
- 是否会再次更改所有者 - 如果 gerrit 在合并提交时会访问这些 blob?
【问题讨论】:
标签: git configuration gerrit