できることはいくつかあります。まず、-c引数を指定した "repo sync"は、チェックアウトされたサンドボックスを "現在の"ブランチに限定します。レポ・シンクは、他の支店の資料をダウンロードしません。
.repo/manifests/default.xmlマニフェストを編集することもできます。私がやることは、 "default.bak"のようなバックアップを作成し、必要がないことを知っているdefault.xmlファイルから行を取り除くことです。私はMacintosh上で構築しているわけではないので、私は "darwin"ツールを必要としないことを知っているので、 "darwin"を含むすべての行を削除します。その後、 "repo sync"はダーウィンプロジェクトをダウンロードしたり、サンドボックスにソースコードをインストールしたりしません。
すでにサンドボックスを同期していて、サイズを調整したい場合は、上記のようにプロジェクトを取り除き、 "repo sync -c -l"を実行すると、ちょうど除去された。 -lフラグは同期のローカル部分のみを行います。つまり、ローカルのgitプロジェクトをソースツリーと同期させるだけです。ネットワークは使用されません。通常同期の残りの半分については "-n"フラグを参照してください。これはネットワークの同期を行い、ローカルのgitプロジェクトを上流のリポジトリに更新します。また、(部屋の多くを取る)、不要なプロジェクト私はこれを使用するためのgitのバッキングオブジェクトストアを削除するには
:
for project in `diff ~/android/.repo/manifests/default.xml ~/android/.repo/manifests/default.bak | awk '{print $3}' | grep path | cut -f2 -d\"`; do rm -rf ~/android/.repo/projects/$project.git ; rm -rf ~/android/.repo/project-objects/$project.git ; done
これは、バックアップのマニフェストにあるすべてのプロジェクトを見つけたが、持っていますアクティブなマニフェストから削除され、gitプロジェクトとそれらのバッキングデータがすべて削除されます。これは多くのスペースを回復します。
あまりにも多くを削除した場合、バックアップマニフェストからプロジェクトラインを復元してアクティブマニフェストに追加し直してください。次に、レポ同期でgitプロジェクトとサンドボックスが再びまっすぐになります。プロジェクトディレクトリで "mma -B -n"を実行することで、ビルドをテストして、多くを削除したかどうかを確認することができます。これはターゲットに完全な依存関係を構築しようとしますが、ターゲットを必要としなくてもすべてのターゲットを強制的にビルドし、ドライランとして実行します。ビルドに失敗した場合は、プロジェクトに必要なものを削除しました。
ローカルミラーサンドボックスを設定し、ミラーから小さな作業参照サンドボックスを作成することもできます。作業用サンドボックスにはgitオブジェクトストアは含まれていませんが、ミラー内の中央のものを参照してください。ミラーを設定するには "repo init -u ... --mirror"、ミラーを参照するには "repo init --reference =〜/ android-mirror -u ..."を使用します。後者の-uフラグは、ミラー参照がローカル・キャッシュとして使用されている間に、実際の上流のリポジトリーを権限として使用できるようにします。ローカルミラーはまた、AOSPプロジェクトが実施するダウンロードクォータを避け、より速く同期することができます。
これはエラー '$ repo init -u https:// android.googlesource.com/platform/manifest'を返し、' $ repo sync platform/tools/base'を返します。 'error:project groupプロジェクトプラットフォーム/ tools/base'に対して有効にする必要があります。何か案は? – nmr