-1

我有一个 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?请帮我!

4

2 回答 2

3

看一下VREF 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...

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


因此,您需要进行一些试验以查看该挂钩是否支持您的确切方案,但这是 Gitolite 限制通过文件或目录名推送的官方方式。

于 2013-01-02T14:30:37.357 回答
0

简短的回答:你不能这样做。一个 git 存储库是全部内容。

唯一的解决方案是将您的测试源放在另一个存储库中(并使用子模块)。

于 2013-01-02T14:24:08.283 回答