除了在那里推送更改的同步用户外,没有人能够写入存储库中的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,但这也行不通。任何提示?
答案 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功能。