2

組織のGerritインスタンスをロールし、LDAP認証を実行し、Androidの作業用コピーを手動でインポートしました。涼しい。

ただし、作業コピーには、アップストリーム(リモート)ブランチへの参照は含まれていません。フレームワーク/ベースなどの特定のプロジェクトについて、私が達成したいと思っていることは次のとおりです。

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

上記のように、ローカルのgitリポジトリがアップストリームプロジェクトを認識していることを確認するにはどうすればよいですか?AOSPコンテンツをローカルにミラーリングする必要がありますか?

いくつかのドキュメントを読んでみました。また、マニフェストxmlにGoogleのリモート削除を追加するだけです。プッシュレプリケーションは広くカバーされていますが、ローカルの変更をそれらにプッシュバックするのではなく、リモートブランチを追跡したいので、これは私のユースケースではありません。

ありがとうございました!

4

1 に答える 1

1

私の知る限り、ほとんどのチームは、レビューをバイパスして、GoogleバージョンのAndroidをプルダウンし、Gerritサーバーに直接プッシュするスクリプトを使用しています。これを支援できるマニフェストxmlファイルの設定はありません。

一部のAndroidショップは、アップストリームブランチとタグに異なる名前空間を使用したいと考えています。たとえば、ブランチとタグではなく、masterすべてfroyoandroid-4.1.1_r6-、、、およびのプレフィックスを付ける場合externalexternal/masterありexternal/froyoますexternal/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ブランチが表示され、それらのブランチに基づいてリベースできます。

于 2012-10-09T01:30:48.683 に答える