2013-10-22 61 views
3

我試圖將一個已存在的git倉庫和多個分支和標籤導入gerrit。我遵循https://gerrit-review.googlesource.com/Documentation/install-quick.html#_already_existing_project官方指南。將多個分支和標籤已經存在的git倉庫導入gerrit

但是,當發出push命令時,除了我目前所在的「主」,所有分支和標籤都被「Gerrit禁止」。輸出是這樣的:

[email protected]:~/my-project$ git push ssh://[email protected]:29418/demo-project *:* 
[....] 
* [new branch]  master -> master 
! [remote rejected] origin/Branch1 -> origin/Branch1 (prohibited by Gerrit) 
! [remote rejected] origin/Branch2 -> origin/Branch2 (prohibited by Gerrit) 
[....] 
! [remote rejected] Tag1 -> Tag1 (prohibited by Gerrit) 
! [remote rejected] Tag2 -> Tag2 (prohibited by Gerrit) 
[....] 

我是管理員,所以它不應該是一個訪問權限問題。

更新: 使用blahdiblah的腳本(https://stackoverflow.com/a/16095671/63661)我是成功的移動所有分支。 爲了能夠傳輸所有標籤,我首先必須使用gerrit網絡界面爲組管理員提供「創建參考」許可* refs/tags/**。之後,我可以推動他們使用git推 - 標籤

回答

6

權限集的最小允許refs/*以導入現有的資源庫,以格里特對我們來說是:

  • Create Reference(很明顯)
  • Forge Author IdentityForge Committer Identity(因爲你是推別人的提交)
  • Push(很明顯)
  • Push Merge Commit(這不包括在Push,你會升ikely有合併提交)
  • Push Annotated Tag(我們使用標註在一些標籤)

您還需要允許Push Signed Tag,如果你已經簽署的標籤,效果顯着。

最後,如果你打算運行導入不止一次在一些過渡期內逐步同步資料庫,您還需要允許Read並啓用Force Push所有Push權限。