2014-03-19 76 views
2

這是我第一次嘗試設置git服務器,並嘗試通過gitolite進行管理。該文檔非常詳細,真正幫助我爲主分支設置了第一條規則。 下面是我的conf文件的一部分,它描述了我的主分支上的訪問。Gitolie個人分支

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

如果你只是希望用戶能夠推到分支,其中包括他們的姓名,然後personal branches功能(即包括/USER/refex)應該足夠了:

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可以操縱分支名稱提到「命名空間」。


namespace support是關於充當單個存儲庫(從refs/namespaces/ refs一點額外的數據)作爲一組相關的庫。例如,這種支持將允許您高效地存儲和提供主要[email protected]:frobozz存儲庫和一組相關的[email protected]:alice/frobozz,[email protected]:bob/frobozz[email protected]:carol/frobozz存儲庫。

由於gitolite文檔中提到的,你必須使用gitolite的一個特殊版本,以獲得此功能:它是唯一可用的主要gitolite倉庫的一個特殊分支下(這個分支也有點出因此它缺少其他功能和修復,這些功能和修復都存在於master中 - 合併可能有助於解決此問題,但仍然是:目前不是最新的)。