在 gitolite 中,我希望@developers
能够推送到除master
.
我希望user1
能够推送到任何分支(包括master
),除了master
.
我该怎么做?
这应该解决两个问题:
repo arepo
RW = @developer
- master$ = @developer
RW = user1
- master and VREF/NAME/adirectory = user1
访问规则和refex页面解释了 /refs/head/master 分支如何被拒绝推送 @developer 。
Virtual Refs 'NAME
'允许您拒绝推送给定目录或文件。
Drew Lesueur在评论中补充道:
- master VREF/NAME/adirectory = user1
它似乎不是在做一个“和”条件,而是一个“或”对我们来说——
master VREF/NAME/adirectory = user1
我最终为我需要的东西编写了一个自定义 VREF 脚本
我确认,在这种情况下,只有自定义 VREF 才能满足 OP 的要求,直到 gitolite 3.5(以及 ' and
' 的引入):参见sitaram (creator of gitolite)'s answer。
从 v3.5 开始,您可以这样做:
(1) 添加这一行
'refex-expr',
文件中的 ENABLE 哈希内的.gitolite.rc
某处。
(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 gitolite 邮件列表是有关 gitolite 问题的正确位置。
然而,有人向我指出了这一点,因为它引用了一个最近的特性,我想我会加入。
-- 西塔拉姆