我对gitolite权限感到困惑。
哪种方法只允许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。
- 请记住,允许对部分副本存储库进行的任何更改都会传播到主存储库,因此请确保使用其他规则来根据需要限制推送到其他分支和标记。