gitolite或gitosis:对存储库内的目录的权限

sil*_*ion 3 git gitolite

例如:我有一个存储库 - 具有这种fs层次结构的repo1

repo1:
 js
 html
 php/core
 php/menu
Run Code Online (Sandbox Code Playgroud)

我想给予repo1:php/menuRW权限 - 给自由职业者,但对于所有repo1 - 这个自由职业者必须只有只读权限.

我可以用gitolite或gitosis做这个或者可能是别的吗?

Von*_*onC 6

在DVCS回购访问权限始终连接到所有回购,而不是如部分,主要是因为你克隆所有的它(浅克隆是很难).

这意味着gitolite(我甚至不会提到过时的gitosis)可以建立限制:

  • 访问所有回购
  • 只写某些分支(但你不能限制对某个分支的读访问)

它无法阻止用户访问回购的部分内容.

但是,由于gitolite v3或'g3'(2012年4月17日),您可以使用VREF规则防止写入(推送)某些目录(除了某些分支).


原始答案(gitolite V2或'g2',2011年11月)

请参阅gitolite.conf- 通过示例旁注:refs的"R"权限

repo    gitolite-admin
        RW+                 =   sitaram
        # this is equivalent to:
        RW+     refs/.*     =   sitaram
Run Code Online (Sandbox Code Playgroud)

Sitaram是唯一的管理员.他可以在gitolite-admin仓库中推送,创建,删除或回放任何分支或标签.

        R master    =   wally       # MEANINGLESS!  WILL NOT DO WHAT YOU THINK IT DOES!
Run Code Online (Sandbox Code Playgroud)

这不行.
您只能在回购级别限制"读取"访问,而不能在分支级别限制.
这是一个git问题,而不是一个gitolite问题.去打扰他们,或切换到gerrit.