Gitolie个人分支机构

时间:2014-03-19 14:01:01

标签: git namespaces branch gitolite

这是我第一次尝试设置git服务器,并尝试通过gitolite进行管理。文档非常详细,真正帮助我为主分支设置了第一条规则。 下面是我的conf文件的一部分,它描述了我的主分支上的访问。

repo @my_repos
    RW+ master    =   @maintainer
    R   master    =   @engineers
    -   master    =   @engineers
    RW+           =   @engineers

我现在要做的是让用户按需创建自己的分支,以推动他们的变化。我希望这些分支遵循某些访问规则(例如,创建者可以RW +和其余的R)。我最初的想法是遵循个人分支的概念。

在个人分支页面(http://gitolite.com/gitolite/special.html#pers)中,作者声明“个人分支存在于他们自己的名称空间中”。这让我认为我应该启用命名空间支持,如下所述:http://gitolite.com/gitolite/namespaces。但是,整个命名空间文档指的是在命名空间下创建存储库,而不是分支。

所以我的问题是我应该启用名称空间,还是“以某种方式”创建个人分支,而这些分支是我尚未学习或在文档中某处遗漏的?

1 个答案:

答案 0 :(得分:1)

如果您只是希望用户能够推送到包含其姓名的分支机构,那么personal branches功能(即在refex中包含/USER/)就足够了:

repo @my_repos
    RW+ master         =   @maintainer  # only maintainer can write to master
    RW+ personal/USER/ =   @engineers   # engineers can write to their own branches like personal/name/mybranch
    R                  =   @engineers   # all engineers can read all refs (branches/tags/etc.), including others' "personal" branches

注意:您可以将personal更改为适合您的想法的任何(非空)前缀,但您必须逐字/USER/包括(正好是那六个字符)。

例如,名为alice的工程师用户可以推送/强制推送/删除personal/alice/下的所有分支(例如personal/alice/ticket-1234personal/alice/wip/frob-support等),以及所有其他工程师都可以阅读这些内容。

文档提到了“命名空间”,因为(例如)personal/alice/前缀形成了一个空间,其中alice可以操作分支名称。 / p>


namespace support是关于将一​​个存储库(带有来自refs/namespaces/ refs的一些额外数据)作为一组相关存储库提供服务。例如,此类支持将允许您有效地存储和提供主git@host:frobozz存储库以及一组相关的git@host:alice/frobozzgit@host:bob/frobozzgit@host:carol/frobozz存储库。

正如gitolite文档中所述,您必须使用特殊版本的 gitolite 才能获得此功能:它仅在主 gitolite 的特殊分支下可用存储库(这个分支在编写时也有点过时,因此它缺少master中存在的其他功能和修复 - 合并可能有助于解决这个问题,但仍然是:目前还不是最新的。)< / p>