我有一个symfony项目的工作配置:
@admin = admin ku
@developer = sarhan dima_syrv sarhandom a_bobkov
@testers = novikov_d
repo dev
- master = @admin @developer @testers
RW+ = @admin @developer
RW+ = jenkins ku
RW = @testers
我想让测试人员组只能写入文件夹测试。 我正在做这个配置: @admin = admin ku @developer = sarhan dima_syrv sarhandom a_bobkov @testers = novikov_d
repo dev
- master = @admin @developer @testers
RW = @admin @developer
RW+ = jenkins
RW = @testers
RW NAME/ = @admin
RW NAME/src = @admin @developer
RW NAME/src/.*/.*/Tests = @testers
我有一个symfony项目的工作配置 我想让测试人员组只能写入文件夹测试 我正在做这个配置 它只给我一部分解决方案,测试人员只能在Tests文件夹中编写,但没有人能推新分支只能在旧分支中记录。如何让每个人都创建一个新的分支,而测试人员只能写入文件夹测试? 请帮帮我!
答案 0 :(得分:3)
查看 VREF NAME
,这是一个更新挂钩,如果您的提交影响了回购邮件中的错误目录或文件,则会拒绝您的推送。
请参阅“restricting pushes by dir/file name”(使用gitolite版本3或“g3”)。
"NAME" VREF
允许您限制按名称和已更改文件的推送。
(旁注:NAME VREF
是唯一直接在更新挂钩中实现的,因此您无法在VREF
目录中找到它。这是一个例子。假设您不希望初级开发人员将更改推送到
Makefile
,因为它非常复杂:
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...
这些引用中的每一个都与访问规则相匹配 如果其中一个恰好是
Makefile
,则返回的引用(VREF/NAME/Makefile
)将与拒绝规则匹配并终止推送。
所以你需要进行一些实验,看看那个钩子是否支持你的确切场景,但这是Gitolite限制文件或dirnames推送的官方方式。
答案 1 :(得分:0)
简短回答:你不能这样做。 git存储库是整个内容。
唯一的解决方案是将您的测试源放在另一个存储库中(并使用子模块)。