2012-08-10 50 views
6

考虑以下回购:gitolite禁止对主分支目录访问而不是在用户分支

REPO/SRC/A/

REPO/SRC/B/

是否有可能通过具有只有1个回购实施以下限制?

  1. 在主分支,可以充分地维护作用
  2. 在主分支,禁止访问,但允许B到贡献者的角色。
  3. 在个人分支上,允许创作者完全访问A和B.
+0

注:在你的情况下,VREF的名字可能是:'VREF/NAME/src/A',而不是'VREF/NAME/A'。 – VonC 2012-08-10 11:21:21

回答

4

使用Gitolite V3 or 'g3'及其VREF,应该有可能实现这些限制。

但是,您可以管理的访问只能用于写入访问。
如果用户可以克隆回购,他/她将具有对所有回购(如“gitolite: allow to change only selelected files”中所述)的读取访问。
如果你真的想限制读取权限,你可以试试gitolite 'partial-copy'

几点注意事项:

access rule是这样的:

<permission> <zero or more refexes> = <one or more users/user groups> 

<zero or more refexes>意味着你可以结合refexes

这会看到这样的(未测试):

repo REPO 
     RW+ master      = MAINTAINER 
     - master   VREF/NAME/A = CONTRIBUTOR 
     RW master   VREF/NAME/B = CONTRIBUTOR 
     RW personal/USER/ VREF/NAME/A = CREATOR 
     RW personal/USER/ VREF/NAME/B = CREATOR 
+0

嘿,我不在乎阅读权限。我会给你一个建议的设置,并回来反馈。 – Konstantinos 2012-08-10 13:06:20

+1

@Konstantinos非常好。确保你的GitLab设置中安装了gitolite V3。在gitlab之外尝试,通过ssh直接使用git命令。 – VonC 2012-08-10 13:09:28

+0

@VonC,但不是合并refex ORed而不是ANDed? – 2014-12-09 20:24:29

0
repo REPO 
    - master VREF/NAME/src/A = @contributors 
    RW+ master = @maintainers @contributors 
    RW+ personal/ = @creators