Git - 使用命名空间并限制访问

时间:2014-03-07 11:58:46

标签: git namespaces repository project-management access-control

我正在尝试在我的服务器上创建一个git存储库。 但我需要一个“特殊”的配置。 以下是访问树:

  • 项目存储库读/写:管理员
    • Dummy-Project读/写:Admin,PersonA
    • Final-Project读/写:Admin,PersonA
    • Developer-1-Namespace读/写:Admin,PersonA,Developer-1
    • Developer-2-Namespace读/写:Admin,PersonA,Developer-2
    • Developer-3-Namespace读/写:Admin,PersonA,Developer-3

因此,对于具有不同命名空间和访问组的项目,应该有一个存储库。因此,每个开发人员都可以表现得像他拥有自己的存储库并执行所有操作,但是管理它们更容易,因为管理员应该都在一个存储库中。并且开发人员无法推送/拉入Dummy / Final-Project非常重要。他们应该访问他们自己的内部“存储库”。

我听说过命名空间可以用于此,但我不知道如何,我找不到适当的文档或教程如何做到这一点。

我希望有人可以帮助我。

问候 赫林

2 个答案:

答案 0 :(得分:0)

Git本身不支持这种细粒度的访问控制(你需要有单独的存储库),但是Gerrit Code Review。然后,您可以让不同的用户组访问同一存储库的不同分支。

目前尚不清楚为什么从管理角度来看,单个存储库会更容易。如果不同用户的分支是独立的,并且不需要合并它们,则可能更容易拥有不同的存储库。

答案 1 :(得分:0)

我正在寻找类似的东西,gitolite(用于授权管理)似乎是与git的细粒度访问控制有关的任何答案。 对于您的情况,它将与使用命名空间结合使用。来自gitolite手册:

"personal" branches are great for environments where developers need to share 
work but can't directly pull from each other (usually due to either a 
networking or authentication related reason, both common in corporate setups).

Personal branches exist in a namespace of their own. The syntax is

RW+ personal/USER/  =   @userlist

http://gitolite.com/gitolite/special.html#pers

关于gitolite:http://git-scm.com/book/en/Git-on-the-Server-Gitolite