2010年12月28日
Androidのrepo syncのTips
Androidのソースコードをダウンロードするにはrepo sync を行いますが、
これには相当時間がかかります。
その時間を節約するためのちょっとしたTipsを紹介します。
既存のリポジトリからコピーすることでダウンロード量を減らす
もし既存のソース(例えばandroid-2.2_r1.1)をダウンロードしていたならば、そのリポジトリを利用することでダウンロードする量を減らすことができます。
$ mkdir android-2.3.1_r1 $ cd android-2.3.1_r1/ $ repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.3.1_r1 $ cp -R ../android-2.2_r1.1/.repo/projects .repo/ $ repo sync
既存のリポジトリを上書きしてもかまわない場合は
$ mv android-2.2_r1.1 android-2.3.1_r1 $ cd android-2.3.1_r1 $ repo init -b android-2.3.1_r1 $ repo sync
これはAndroid Buildingのグループから情報を得ました。
repo syncを並列で動かすオプション
makeでは並列で動かすジョブの数を指定できる -j というオプションがありますが、同じようなオプションが repo sync にあります。
コマンドラインヘルプで確認してみると
$ repo sync -h Usage: repo sync [...] Options: -h, --help show this help message and exit -f, --force-broken continue sync even if a project fails to sync -l, --local-only only update working tree, don't fetch -n, --network-only fetch only, don't update working tree -d, --detach detach projects back to manifest revision -q, --quiet be more quiet -j JOBS, --jobs=JOBS number of projects to fetch simultaneously -s, --smart-sync smart sync using manifest from a known good build repo Version options: --no-repo-verify do not verify repo source code $
4本のfetchを同時に走らせる場合は
$ repo sync -j4
これによってダウンロード時間を短縮できますが、ネットワークの帯域を占有しないように気をつけてください。
この-jオプションはtwitterで教えてもらいました。