【问题标题】:The owner of git directories was changed on the servergit 目录的所有者在服务器上被更改
【发布时间】: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。进一步看,还有其他几个目录和对象归根拥有。

  1. 是否因为 gerrit 而更改了目录所有者?
  2. 我们可以将日志、packed-refs、描述目录所有者改回 git:git 吗?
  3. 是否会再次更改所有者 - 如果 gerrit 在合并提交时会访问这些 blob?

【问题讨论】:

    标签: git configuration gerrit


    【解决方案1】:

    检查 GERRIT-SITE/etc/gerrit.config 文件中的 container.user 变量。

    container.user
    
    Login name (or UID) of the operating system user the Gerrit JVM will execute as. If not set, defaults to the user who launched the 'gerrit.sh' wrapper script.
    

    查看 Gerrit 文档here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-21
      • 2020-07-11
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 1970-01-01
      • 2012-04-23
      相关资源
      最近更新 更多