33

この質問を Android Enthusiasts に投稿しましたが、質問する場所が間違っていると判断したため、そこから削除して、ここで「もう一度」質問しました。


これは非常に初歩的な質問であり、そうであれば申し訳ありませんが、根底にある概念を明確に理解したいだけです。レポ ヘルプと Google のレポ コマンド リファレンス ページを読んでも、あまり意味がありません。Google のリファレンス ページの一部は理解できましたが、さらに説明が必要です。

Android ソースをダウンロードする方法の指示に従って、Ubuntu シェルで次の 2 つのコマンドを実行しました (環境のすべての前提条件を処理しました)。

~/android4.2.2$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1.2
~/android4.2.2$ repo sync -j4

レポのダウンロードが完了するまで半日待った後、android4.2.2 ディレクトリに 19G のダウンロードされた素材ができました。それでは、正確に何が起こったのでしょうか。また、Google が 8G 程度のソース ファイルしか期待できないと言ったのに、なぜ 19G に達したのでしょうか?

4

1 に答える 1

55

repoの python ラッパー スクリプトでgitあり、その Google ソースページでは次のように定義されています。

repo - 複数の Git リポジトリ ツール

  1. repo initコマンドは、現在のディレクトリでリポジトリを初期化します。つまり、最新のリポジトリ ソースとmanifest.xmlgit リポジトリのディレクトリ構造を記述したファイルをダウンロードし、これらすべてを.repo現在のディレクトリのサブディレクトリに格納します。あなたの場合、-bチェックアウトするブランチを選択するために使用されるオプションの引数を使用しました。デフォルトでは (つまり、-b引数が使用されていない場合)、master ブランチが使用されます。

  2. repo sync作業ツリーを最新のリビジョンに更新します。つまり、ローカル プロジェクト ディレクトリを、マニフェスト ファイルで指定されたリモート リポジトリと同期します。ローカル プロジェクトがまだ存在しない場合は、リモート リポジトリから新しいローカル ディレクトリを複製し、マニフェストで指定された追跡ブランチを設定します。ローカル プロジェクトが既に存在する場合は、リモート ブランチを更新し、新しいリモート変更の上に新しいローカル変更をリベースします。-j引数は、実行する並列ジョブの数を設定するために使用されます。デフォルト値はマニフェストで定義でき、あなたの場合のようにコマンドラインでオーバーライドすることもできます.

ソースファイルは約 8G しか期待できないと Google が言ったのに、なぜ 19G に達したのですか?

これは、ソース ファイルに加えて、Android の最初からのすべての履歴を取得できるためです :)

お役に立てれば。

于 2014-07-30T23:24:33.113 に答える