使用分支和文件夹的gitolite权限

时间:2013-06-04 18:45:18

标签: git gitolite

在gitolite中,我希望@developers能够推送到master以外的任何分支。
我希望user1能够推送到任何分支(包括master),而不是master上的某个目录。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

这应该解决两个问题:

repo arepo
  RW          = @developer
  -  master$  = @developer

  RW                     = user1
  - master and VREF/NAME/adirectory = user1

access rulesrefex页面解释了/ refs / head / master分支如何拒绝推送@developer。

Virtual Refs 'NAME'允许您拒绝推送给定目录或文件。

Drew Lesueur添加了the comments

  - master VREF/NAME/adirectory = user1
  

似乎没有做“和”条件,但是“或”对我们来说 - master VREF/NAME/adirectory = user1
  我最终为我需要的东西编写了一个自定义的VREF脚本

我确认,在这种情况下,只有自定义VREF才能满足OP的要求,直到gitolite 3.5(以及'and'的引入):见sitaram(gitolite的创建者)' s answer

答案 1 :(得分:1)

从v3.5开始,你可以这样做:

(1)添加此行

'refex-expr',

某处inside the ENABLE hash in the .gitolite.rc file

(2)使用这样的规则:

repo r1
    RW+ master                          =   user
    RW+                                 =   user
    RW+ VREF/NAME/Makefile              =   user
    -   master and VREF/NAME/Makefile   =   user

文档(包括警告!)位于src/VREF/refex-expr内。还有一些其他简洁的例子。

请注意,我不遵循SO / SE /等; IMO the gitolite邮件列表是关于gitolite问题的正确位置。

然而,有人向我指出了这一点,因为它引用了一个最近的功能,我以为我会插手。

- sitaram