2012-10-06 34 views
2

我爲我的組織推出了一個Gerrit實例,獲得了LDAP 身份驗證,並手動導入了一些Android的工作副本 。涼。可以將項目重新分配給Google AOSP的Gerrit實例?

但是,工作副本不包括對上游(遠程) 分支的引用。對於給定的項目,比如說框架/基地,我倒是希望 實現的是:

git branch -r 
# See Google branches 
git rebase # to a Google branch. 
git push # back to my Gerrit instance. 

如何確保我的本地git的回購都知道上游 項目,如上面?我需要在本地鏡像AOSP內容嗎?

我曾試着閱讀一些文檔,並且簡單地將Google的遠程 添加到我的清單xml中。推複製廣泛覆蓋了 ,但這不是我的使用案例,因爲我想跟蹤遠程分支,因此不會將我的本地更改推回給它們。

謝謝!

回答

1

據我所知,大多數團隊都使用腳本,將Google的Android版本下載並直接推送到他們的Gerrit服務器,而忽略了審查。清單xml文件中沒有設置可以幫助解決這個問題。

一些Android商店想要爲上游分支和標籤使用不同的名稱空間。例如,他們可能會在external-external/master,external/froyoexternal/android-4.1.1_r6的前面加上masterfroyofroyo分支和android-4.1.1_r6標籤的前綴。

其他商店以類似的方式在其內部分支和標籤的前綴。

你做腳本的腳本看起來與此類似(未經測試)。首先使用--mirror選項從上游設置本地回購克隆。

# this only needs to be ran once, or for any new repositories added to repo: 
repo forall -c \ 
    'git remote add local_server ssh://path/to/local/gerrit:29418/$REPO_PROJECT' 

# fetch changes 
repo forall -c 'git fetch' 

# push to your local Gerrit server 
repo forall -c 'git push local_server refs/*:refs/external/*' 

您當然可以使用cron作業來自動執行此腳本。一旦到位,當開發者運行git branch -r時,他們將看到來自上游的origin/external/blah分支,並可基於這些分支進行rebase。

相關問題