2012-02-01 5 views
18

私はgitのことをよく理解しているように感じますが、repoコマンドについては迷ってしまいます。私はrepoコマンドについて読んだことがありますが、私はそれがすべてを結びつける方法はまだ分かりません。Androidのrepoコマンドとスイッチングブランチ

私の最大の疑問は、ジンジャーブレッドからICSへ、そしておそらく戻って私の現在のブランチを変更することができますか?これは、masterブランチでレポを作成します、私の理解から、

repo init -u https://android.googlesource.com/platform/manifest 

私はコマンドを参照してください。私はブランチを指定したい場合は、私が行うことができます。

repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1 

ダウンロードは8GB程度ですが、私は信じているので、私は、彼らがコードを共有する場合離れて私のレポを吹くする必要がありますする必要はありません。レポのブランチを切り替える方法はありますか?

答えて

41

repo initを別のブランチで2回実行すると、単純にrepo syncになり、ソースコード全体を再度ダウンロードすることはできません。

+0

https://groups.google.com/forum/#!topic/android-building/rtH5ZbJC7qUを参照してください。同じトピックです。 – execve

4

repo -bパラメータは、チェックアウトする必要のある.repo/manifests gitリポジトリのブランチを指定します。このリポジトリのdefault.xmlファイルは、他のgitリポジトリ(プロジェクト)の各ブランチを定義します。

repoは、別のマニフェストブランチをチェックアウトすると再びレポ同期が行われるように書かれているようですが、ネットワーク上で再びすべてのコードを取得します。

repo forall -c 'git checkout branch_name'を実行すると、現在のマニフェストで宣言されているすべてのプロジェクトの指定されたブランチがチェックアウトされますが、ジンジャーブレッドとicsの間にプロジェクトが追加/削除されている場合これらのプロジェクトのために。

.repo/manifestsリポジトリでgit checkout branchnameを実行すると、repo syncを実行するとネットワークオーバーヘッドを節約できます。

それ以外の場合は、repoの制限のために、それを実行する唯一の方法は、aospの2つの作業コピーを維持するか、再同期を準備することです。

+2

これは数ヶ月前に投稿したことに気付きましたが、再度ダウンロードされたソースに関する部分は、もはや正確ではなくなりました。 – gparent

関連する問題