vref拒绝要推送的新分支

时间:2017-12-06 13:14:05

标签: gitolite

我想配置一个存储库供每个开发人员访问,但某个特定文件只能由某些用户修改。

RWCD                             = @developer
RW+ refs/tags                    = @developer
RW+ VREF/NAME/version.properties = @versionPropertyModifier
-   VREF/NAME/version.properties = @all

这很好但有一个问题: 当任何不是@versionPropertyModifier组成员的开发人员想要推送新分支时,推送将被拒绝,并带有指向version.properties vref的链接。

我的规则集有什么问题?

1 个答案:

答案 0 :(得分:0)

example for Vref/NAME并不完全相同:

repo foo
        RW+                             =   @senior_devs
        RW                              =   @junior_devs

        -   VREF/NAME/Makefile          =   @junior_devs
  

当高级开发人员推送时,根本不会调用VREF。但是当一个初级开发者推送时,会调用VREF,并返回一个更改为虚拟引用的文件列表,如下所示:

VREF/NAME/file-1
VREF/NAME/dir-2/file-3
...etc...
  

这些引用中的每一个都与访问规则相匹配。如果其中一个恰好是Makefile,则返回的ref(VREF / NAME / Makefile)将与deny规则匹配并终止推送。

所以在你的情况下:

RWCD                              = @developer
RW+  refs/tags                    = @developer
-    VREF/NAME/version.properties = @versionPropertyModifier