exe*_*exe 5 git branch gitolite git-branch
我对gitolite权限有点困惑。
仅允许 1 个分支并拒绝特定用户或组的所有其他分支的最佳方法是什么?
请参阅“部分复制:分支的选择性读取控制”
要点是:
Git(因此 gitolite)无法进行选择性读取控制 - 允许某人读取分支
A而不是分支B。
要么是整个仓库,要么什么都没有。Gerrit Code Review可以做到这一点,但那是因为他们有自己的 git (以及他们自己的 sshd 等)。如果代码审查是您访问控制决策的一部分,那么无论如何您确实应该考虑 Gerrit。
当您询问时得到的标准答案是“使用单独的存储库”(其中一个包含所有分支,一个包含分支的子集)。
这在理论上很好,但在实践中,当人们可能同时推送两个存储库时,您需要弄清楚如何使它们保持同步。Gitolite 现在可以帮助您做到这一点。请注意,这仅适用于分支机构;您不能对文件和目录执行此操作。
就是这样:
在 rc 文件的列表中启用“
partial-copy” 。ENABLE对于每个
foo具有秘密分支的存储库“”,某些开发人员(我们将使用名为的组@temp-emp作为示例)不应该看到这些分支,请执行以下操作:Run Code Online (Sandbox Code Playgroud)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 之后。
- 请记住,允许对部分复制存储库进行的任何更改都将传播到主存储库,因此请确保根据需要使用其他规则来限制对其他分支和标签的推送。
| 归档时间: |
|
| 查看次数: |
478 次 |
| 最近记录: |