Gitolite权限只对一个分支

时间:2015-08-10 12:43:57

标签: git gitolite

我对gitolite权限感到困惑。

哪种方法只允许1个分支并拒绝所有其他分支到特定用户或组?

1 个答案:

答案 0 :(得分:1)

请参阅" partial-copy: selective read control for branches"

重点是:

  

Git(因此是gitolite)无法进行选择性读取控制 - 允许某人读取分支A但不能分支B
  它是整个回购或没有任何东西

     
    

Gerrit Code Review可以做到这一点,但那是因为他们有自己的git(以及他们自己的sshd,等等)。如果代码审查是您的访问控制决策的一部分,那么您真的应该考虑Gerrit。

  
     

您提出的标准答案是"使用单独的回购" (其中一个包含所有分支,一个包含分支的子集)。
  这在理论上是好的,但在实践中,当人们可能推动这两个回购时,你需要弄清楚如何使它们保持同步。

     

Gitolite现在可以帮助你做到这一点。请注意,这仅适用于分支机构;你不能为文件和目录这样做。

     

以下是:

     
      
  • 启用' partial-copy'在rc文件的ENABLE列表中。
  •   
  • 每个回购" foo"它有秘密分支,某些开发人员(我们将使用名为@temp-emp的组作为示例)不应该看到,执行此操作:
  •   
    repo foo
        # rules should allow @temp-emp NO ACCESS

    repo foo-partialcopy-1
        -   secret-branch               =   @temp-emp

        # other rules; see notes below

        -   VREF/partial-copy           =   @all
        config gitolite.partialCopyOf   =   foo
  

重要注意事项:

     
      
  • 如果您正在使用其他VREF,请确保将其放在最后,而不是其他所有VREF。
  •   
  • 请记住,允许对部分副本存储库进行的任何更改都会传播到主存储库,因此请确保使用其他规则来根据需要限制推送到其他分支和标记。
  •