2010-07-07 55 views
4

這是一個關於git倉庫管理的問題...的Git拒絕用戶創建標籤

是否有可能配置混帳回購協議,允許標籤創建只對某些用戶? 分支的類似問題:是否可以配置用戶的列表,誰可以修改特定的分支?

所有這些配置的想法是:有許多開發人員的git回購,我們想要有一些穩定的分支和標籤列表。只有高級開發人員才能修改這些分支並創建標籤。 所有其他開發者仍然可以創建分支機構等。但是,如果開發者想宣傳他的變化穩定分支,他必須聯繫資深人士,請他做一個合併...

謝謝

+0

還有一件事 - 想象該項目是由sourceforge.net託管 - 所以它是開源的,並有許多開發人員 - 這是有道理的,允許標籤創建僅用於管理員... – user349302 2010-07-07 20:41:17

回答

1

對於分支機構和註釋標籤(即版本標籤,可以被推/拉),gitolite可以提供那種訪問控制。

請參閱「matching a ref and a refex」(gitolite 3.X)

這種工具允許的「中央」倉庫保護:如果你有正確的憑據,您可以複製它們,你想要做什麼你本地副本,但只要你想推回來,gitolite將控制與該遠程回購相關的權限。

如果沒有refex被提供,則默認爲refs/.*,例如在規則是這樣的:

RW              =   alice 

甲refex不開始refs/(或VREF/)被假定爲開始與refs/heads/
這意味着正常的分支可以方便地寫成這樣:

RW  master      =   alice 
# becomes 'refs/heads/master' internally 

而標籤將需要完全限定:

RW  refs/tags/v[0-9]    =   bob 

所以默認情況下,不能推送標籤,除非有一個明確的refs/tag/規則允許您的用戶或組p的用戶。

+0

在同一時間的網站:( – v01pe 2013-10-11 08:51:32

+1

@ v01pe我已恢復鏈接並添加了一個示例。 – VonC 2013-10-11 12:10:48

1

Gerrit(主要是代碼審查系統)幾乎完全爲你描述它解決了這個問題。

您可以定義組,然後設置存儲庫權限誰可以在分支中推送審閱,誰可以直接將更改推送到分支,誰可以推送標籤(各種類型),甚至誰可以看到/推送給您最高機密的分支。

Our gerrit instance向全世界開放,雖然我們限制誰可以推動什麼和在哪裏(並且在一些能夠做得比別人做得更多的項目上有一些合作者)。

0

這是我的理解,通過閱讀文檔和個人經驗,Git不是以這種方式使用。您所描述的內容可以通過多個存儲庫方案輕鬆處理,其中較少的開發人員推送到開發存儲庫,並且高級開發人員從中進行更改,合併,測試等,然後將其部署到生產回購開發人員可以拉。

0

您可以使用.git/refs/heads和.git/refs/tags上的標準文件訪問規則來限制訪問。例如,如果您製作.git/refs/tags模式775,則只有擁有.git/refs/tags的組的成員才能創建標籤。同樣,您可以將讀取權限限制爲.git/refs/heads/foo,以便只有具有讀取訪問權限的用戶才能檢出分支foo,並且只有具有對.git/refs/heads的寫入權限的人才能創建新的分支機構。然而,這是一種不可靠的技術,並且使用具有適當訪問權的不同存儲庫會更好。