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

问题描述:

我正在尝试在我的服务器上创建一个git存储库。 但我需要一个“特殊”的配置。 下面是访问树:Git - 使用名称空间并限制访问

  • 项目库                                     读/写:管理员
    • 虚拟项目                                 读/写:管理员,PERSONA
    • 决赛项目                                         读/写:管理员,人物角色
    • 开发-1-命名空间   读/写:管理员,人物角色,显像剂1
    • 开发-2-命名空间   读/写:管理员,人物,显像剂2
    • 开发-3-命名空间   读/写:管理员,假面,显像剂3

小号o详细地说,应该为具有不同名称空间和访问组的项目存储一个存储库。因此,每个开发人员都可以像他拥有自己的存储库一样行事,并执行所有通用操作,但由于管理员应该将其全部存放在单个存储库中,因此可以更轻松地管理它们。开发人员无法推进/拉入虚拟/最终项目是非常重要的。他们应该有只有访问他们自己的内部“存储库”。

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

我希望这里有人能帮助我。 赫林

的Git本身不支持这种细粒度的访问控制

问候(你需要有单独的存储库),但如Gerrit Code Review呢。然后,您可以让不同的用户组访问同一存储库的不同分支。

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

+0

因为所有的开发者正在对同一项目,但自主承担创造自己版本的单个存储库将是很容易在这里(所以没有合并等),从虚拟项目开始。我正在谈论的可能是500个开发人员和多达5个项目。所以最终有2500个仓库和自动化代码测试和其他的东西会让人感到困惑......感谢Gerrit代码的东西,但我不认为这将适用于我的情况 – Hering

我正在寻找类似的东西,gitolite(用于授权管理)似乎是任何与细粒度acces控制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