【问题标题】:Issue on Gitolite permissions on a derived branch from a restricted one从受限分支派生分支的 Gitolite 权限问题
【发布时间】:2017-05-04 20:04:44
【问题描述】:

我有两个分支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?还是其他原因?

【问题讨论】:

    标签: git permissions branch gitolite


    【解决方案1】:

    Gitolite 使用refex:

    引用是我编造的一个词,意思是“匹配引用的正则表达式”。

    一个 refex 隐式锚定在开头,而不是结尾。在正则表达式术语中,假定开头为 ^(但假定末尾没有 $)。
    所以master 的引用将匹配所有这些引用:

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

    儿子,你的 gitolite 规则中需要 dev$

    【讨论】:

      猜你喜欢
      • 2015-11-02
      • 1970-01-01
      • 2015-07-02
      • 2011-07-17
      • 1970-01-01
      • 2012-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多