できることはたくさんあります。まず、-c引数を指定した「reposync」は、チェックアウトされたサンドボックスを「現在の」ブランチのみに制限します。repo syncは、他のブランチの資料をダウンロードしません。
.repo / manifests/default.xmlマニフェストを編集することもできます。私がしていることは、「default.bak」などのバックアップを作成してから、不要であることがわかっているdefault.xmlファイルから行を削除することです。私はMacintoshで構築していないので、「darwin」ツールは必要ないことがわかっているので、「darwin」を含むすべての行を削除します。その場合、「repo sync」は、darwinプロジェクトをダウンロードしたり、サンドボックスにソースコードをインストールしたりしません。
すでにサンドボックスを同期していて、そのサイズをトリミングしたい場合は、上記のようにプロジェクトを削除してから「repo sync -c -l」を実行すると、reposyncは削除したばかりのディレクトリのみを削除します。-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オブジェクトストアは含まれていませんが、ミラーの中央のサンドボックスを参照しています。「repoinit-u... --mirror」を使用してミラーを設定し、「repo init --reference =〜/ android-mirror-u...」を使用してミラーを参照します。後者の-uフラグを使用すると、実際のアップストリームリポジトリを権限として使用でき、ミラー参照をローカルキャッシュとして使用できます。ローカルミラーは、AOSPプロジェクトが適用するダウンロードクォータも回避し、同期が高速になります。