gitolite可以使用repo和具有不同分支的相同repo的克隆,因此,实际上每个分支级别具有读访问权限吗?

时间:2014-05-01 22:03:06

标签: git gitolite

问题

我想要使用gitolite的分支级读取访问权限,我知道这是不可能的。 https://groups.google.com/forum/#!topic/gitolite/y87WpZp1BMM

可能的解决方案

但是,我可以拥有一个repo和克隆的repo(仍由gitolite管理)具有不同的读取访问级别和不同的分支(其中一些只能在私有仓库中,因此它们将成为私有分支) ?还有其他众所周知的变通方法吗?

2 个答案:

答案 0 :(得分:1)

我有这个:

repo    dotfiles
    RW+CD @dev              = @ben.boeckel
    RW    refs/heads/master = @ben.boeckel
repo    priv/dotfiles
    RW+C refs/heads/non-public  = @ben.boeckel
    RW+C refs/heads/$hostname   = @ben.boeckel
    -                           = @all
    config gitolite-options.deny-repo = 1
    config core.sharedRepository = 0700

我为每个特定于主机的分支重复$hostname行。这有效地确保拒绝除主服务器之外的任何非dev/分支(@dev)。私人仓库然后被锁定到那些分支。

存储库在git-daemoncgit的不同jail中提供,这些jail没有用户访问存储库的权限(并使用ronullfs挂载,所以如果deny-repo选项失败,文件系统将拒绝作为故障保护的访问。

答案 1 :(得分:0)

  

还有其他众所周知的变通方法吗?

不,如果您想控制读取分支机构的访问权限,您必须将它们隔离在自己的仓库中。

您可以调整分支远程refspec,以便记住您应该将哪个分支推送到哪个回购:请参阅“How to copy a local Git branch to a remote repo”。