我想要使用gitolite的分支级读取访问权限,我知道这是不可能的。 https://groups.google.com/forum/#!topic/gitolite/y87WpZp1BMM
但是,我可以拥有一个repo和克隆的repo(仍由gitolite管理)具有不同的读取访问级别和不同的分支(其中一些只能在私有仓库中,因此它们将成为私有分支) ?还有其他众所周知的变通方法吗?
答案 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-daemon
和cgit
的不同jail中提供,这些jail没有用户访问存储库的权限(并使用ro
和nullfs
挂载,所以如果deny-repo
选项失败,文件系统将拒绝作为故障保护的访问。
答案 1 :(得分:0)
还有其他众所周知的变通方法吗?
不,如果您想控制读取分支机构的访问权限,您必须将它们隔离在自己的仓库中。
您可以调整分支远程refspec,以便记住您应该将哪个分支推送到哪个回购:请参阅“How to copy a local Git branch to a remote repo”。