vref 拒绝推送新的分支
Posted
技术标签:
【中文标题】vref 拒绝推送新的分支【英文标题】:vref rejects new branches to be pushed 【发布时间】:2017-12-06 13:14:04 【问题描述】:我想配置一个存储库以供每个开发人员访问,但一个特定文件只能由某些用户修改。
RWCD = @developer
RW+ refs/tags = @developer
RW+ VREF/NAME/version.properties = @versionPropertyModifier
- VREF/NAME/version.properties = @all
这一切正常,但有一个问题: 当任何不是@versionPropertyModifier 组成员的开发人员想要推送新分支时,推送会被拒绝并带有指向version.properties vref 的链接。
我的规则集有什么问题?
【问题讨论】:
【参考方案1】:example for Vref/NAME 并不完全相同:
repo foo
RW+ = @senior_devs
RW = @junior_devs
- VREF/NAME/Makefile = @junior_devs
当高级开发人员推送时,根本不会调用 VREF。但是当初级开发者推送时,会调用 VREF,并返回一个更改为虚拟 refs 的文件列表,如下所示:
VREF/NAME/file-1
VREF/NAME/dir-2/file-3
...etc...
这些 ref 中的每一个都与访问规则相匹配。如果其中之一恰好是 Makefile,则返回的 ref (VREF/NAME/Makefile) 将匹配拒绝规则并终止推送。
所以在你的情况下:
RWCD = @developer
RW+ refs/tags = @developer
- VREF/NAME/version.properties = @versionPropertyModifier
【讨论】:
感谢您的回答,但配置正好相反。现在“@versionPropertyModifier”组中的用户无法修改文件 version.properties。但应该是:应该只允许“@versionPropertyModifier”组中的用户修改 version.properties 文件,@all 应该能够创建分支并推送它们。 @MeMeMax 正如我在此处 (***.com/a/29840269/6309) 或那里 (gitolite.com/gitolite/cookbook/#access) 所提到的,您是否尝试使用gitolite acces
来调试您的规则?
尝试调试但没有找到解决方案。我认为 VREF/NAME_NC 是我正在寻找的,但我还不确定。我需要先升级我们的 gitolite 版本进行测试。
@MeMeMax 升级 gitolite 听起来是个好主意。我假设您使用的是可用的最新版本。以上是关于vref 拒绝推送新的分支的主要内容,如果未能解决你的问题,请参考以下文章