2013-01-02 12 views
-1

我有一個symfony項目工作配置:你會如何授權只在Gitolite的某些目錄中推送?

@admin = admin ku 
@developer = sarhan dima_syrv sarhandom a_bobkov 
@testers = novikov_d 

repo dev 
    - master = @admin @developer @testers 
    RW+  = @admin @developer 
    RW+  = jenkins ku 
    RW  = @testers 

我想使組測試者可以只寫文件夾測試。 我在做這個配置: @admin =管理區 @developer = sarhan dima_syrv sarhandom a_bobkov @testers = novikov_d

repo dev 
    - master = @admin @developer @testers 
    RW  = @admin @developer 
    RW+  = jenkins 
    RW  = @testers 
    RW NAME/ = @admin 
    RW NAME/src = @admin @developer 
    RW NAME/src/.*/.*/Tests = @testers 

我有一個symfony項目 有效的配置我想使組的測試人員只能寫入文件夾測試 我正在做這個配置 它只給了我部分解決方案,測試人員只能寫在測試文件夾中,但沒有人可以推新的分支只能在舊分支中記錄。如何讓每個人都創建一個新的分支,而測試人員只能寫入文件夾測試? 請幫幫我!

+1

那麼,這是什麼問題?無法訪問? – Stony

+0

對不起,問題關閉。我懷疑那些「版主」對git的瞭解不多,甚至對gitolite也不太瞭解。 – VonC

+0

@VonC我懷疑這個問題是因爲非常簡單的評論而關閉的:「_但它不起作用。」OP需要提供更多的細節才能成爲一個真正的問題。 – jlordo

回答

0

簡答:你不能這樣做。一個混帳存儲庫是整個內容。

唯一的解決方案是讓您的測試源在另一個存儲庫(並使用子模塊)。

3

看看VREF NAME,一個更新掛鉤,如果您的提交影響了您的回購庫中錯誤的目錄或文件,它將拒絕您的推送。

請參閱「restricting pushes by dir/file name」(與gitolite版本3或'g3')。

"NAME" VREF可以限制通過顯示目錄和文件的名稱推動改變。
(注意:NAME VREF是在更新鉤子中直接實現的唯一一個,所以你不會在VREF目錄中找到它)。

下面是一個例子。說你不想初級開發人員推動更改Makefile,因爲它是相當複雜:

repo foo 
    RW+        = @senior_devs 
    RW        = @junior_devs 

    - VREF/NAME/Makefile   = @junior_devs 

當一個資深開發推動,該VREF根本沒有被調用。但是,當一個初級dev的推動,該VREF被調用,並返回改變裁判的文件列表,看起來像這樣:

VREF/NAME/file-1 
VREF/NAME/dir-2/file-3 
...etc... 

每個裁判是針對訪問規則匹配。
如果其中一個碰巧是Makefile,那麼返回的ref(VREF/NAME/Makefile)將匹配拒絕規則並終止推送。


所以你需要做一些試驗,看看是否能勾支持你確切的情況,但這是Gitolite來限制文件或dirnames中推官方途徑。

+0

我試過不同的配置,當我添加VREF/NAME ...或NAME ...以及任何參數時,我不能推 – user1943041

+0

@ user1943041考慮我在我的回答中提到的鏈接的第二部分,然後:從「另一種使用這種方式的方法開始」是當你知道什麼是允許的,而不是什麼是不允許的時:「這可能更接近你所需要的。 – VonC