关于受限分支的派生分支的 Gitolite 权限问题
Issue on Gitolite permissions on a derived branch from a restricted one
我有两个分支 dev
和 ui
,我正在尝试将 ui 合并到临时分支 dev-ui
上的开发中。我从 dev 创建了一个新分支,并将 ui 合并到其中。所以我的分支模式是:
dev ----- dev-ui
ui --/
我正在使用 Gitolite,并且我已锁定 master
和 dev
分支以防止未经授权的写入。这是我的配置相关文件:
@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
?还是其他原因?
Gitolite 使用 refex:
A refex is a word I made up to mean "a regex that matches a ref".
A refex is implicitly anchored at the start, but not at the end. In regular expression lingo, a ^
is assumed at the start (but no $
at the end is assumed).
So a refex of master
will match all these refs:
refs/heads/master
refs/heads/master1
refs/heads/master2
refs/heads/master/full
在你的情况下,你的 gitolite 规则中需要 dev$
。
我有两个分支 dev
和 ui
,我正在尝试将 ui 合并到临时分支 dev-ui
上的开发中。我从 dev 创建了一个新分支,并将 ui 合并到其中。所以我的分支模式是:
dev ----- dev-ui
ui --/
我正在使用 Gitolite,并且我已锁定 master
和 dev
分支以防止未经授权的写入。这是我的配置相关文件:
@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
?还是其他原因?
Gitolite 使用 refex:
A refex is a word I made up to mean "a regex that matches a ref".
A refex is implicitly anchored at the start, but not at the end. In regular expression lingo, a
^
is assumed at the start (but no$
at the end is assumed).
So a refex ofmaster
will match all these refs:
refs/heads/master
refs/heads/master1
refs/heads/master2
refs/heads/master/full
在你的情况下,你的 gitolite 规则中需要 dev$
。