如何将Gitolite VREF限制仅限于一个分支?

时间:2014-10-09 11:01:21

标签: gitolite

除了在那里推送更改的同步用户外,没有人能够写入存储库中的profiles / recruiter目录:

repo    test
    RW                                = @contributors gitsync
    RW  VREF/NAME/profiles/recruiter/ = gitsync
    -   VREF/NAME/profiles/recruiter/ = @all

到目前为止这是有效的。现在我只想对master分支进行限制,以便贡献者可以将任何内容推送到功能分支。但这不起作用:

repo    test
    RW                                       = @contributors gitsync
    RW  master VREF/NAME/profiles/recruiter/ = gitsync
    -   master VREF/NAME/profiles/recruiter/ = @all

即使我将master添加到第一个规则也不起作用:

repo    test
        RW                                      = @contributors
        RW  master                              = @contributors
        RW  master VREF/NAME/profiles/recruiter/ = klausi
        -   master VREF/NAME/profiles/recruiter/ = klausi_test

然后不允许klausi_test用户将profiles / recruiter目录中的东西推送到某个foobar分支。

我也试过gitolite disallow access for directory on master branch but not on user branch,但这也行不通。任何提示?

1 个答案:

答案 0 :(得分:1)

我最近不得不弄清楚这样的事情,我想我想出了如何使用refex-expr功能。我相信这是3.6.2中的一个功能。以下设置应该有效。

repo test
    RW                                           = @contributors gitsync
    RW  master                                   = @contributors
    RW  VREF/NAME/profiles/recruiter/            = @contributors
    -   master and VREF/NAME/profiles/recruiter/ = @contributors

请注意,您需要在.gitolite.rc文件中启用refex-expr功能。