来自受限制的分支的Gitolite权限问题

时间:2016-12-19 17:45:01

标签: git permissions branch gitolite

我有两个分支devui,我试图将ui合并到临时分支dev-ui上的dev中。我已经从dev创建了一个新分支,并将ui合并到其中。所以我的分支架构是:

dev ----- dev-ui
ui  --/

我使用的是Gitolite,我已经锁定了masterdev个未经授权的分支。这是我的配置相关文件:

@myRepoDevs = dev1 dev2

repo    myRepo
  RW+                            = admin
  R     dev master               = @myRepoDevs
  -     dev master               = @myRepoDevs
  RW                             = @myRepoDevs

当两个开发人员中的一个试图将dev-ui推送到origin时,他会从git控制台收到此错误:

remote: FATAL: W refs/heads/dev-ui myRepo dev1 DENIED by refs/heads/dev
remote: error: hook declined to update refs/heads/dev-ui
To myServer:myRepo
 ! [remote rejected] dev-ui -> dev-ui (hook declined)
error: failed to push some refs to 'myServer:myRepo'

为什么他不能推动dev-ui? 是因为它直接来自dev,还是因为它的名字上有前缀dev?还是另一个原因?

1 个答案:

答案 0 :(得分:1)

Gitolite使用refex

  

refex是一个词,我的意思是“匹配ref的正则表达式”。

     

refex隐含在开始时,但不是在结尾。在正则表达式术语中,假设在开始时^(但假设在结尾处没有$)。
  因此master的反馈将匹配所有这些参考:

refs/heads/master
refs/heads/master1
refs/heads/master2
refs/heads/master/full

在你的情况下,你的gitolite规则需要dev$