Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AOSP repo sync takes too long

I'm trying to learn Embedded Android from the book with the same name. And the author suggested working with AOSP gingerbread branch. So I followed to download the source:

$ repo init -u https://android.googlesource.com/platform/manifest.git
-b gingerbread

$ repo sync

But it's taking too long. Also from the output, it seems to me like it's also downloading source code from other branches (I see android-5.....) which is not what I want. I'm wondering if that's the reason why it takes so long.

Has anybody had the same problem? Please give me a suggestion! Thanks!

like image 328
user3011609 Avatar asked Feb 07 '15 07:02

user3011609


3 Answers

AOSP is a multi-gigabyte download so there's not that much you can do. However, passing the -c/--current-branch option to repo sync causes Repo to tell Git to only fetch the branch you really need instead of all branches of each repository. With an old release like Gingerbread this should theoretically be quite beneficial. However, Repo seeds the repositories with Git bundles that it downloads via HTTP, and the bundle files aren't affected by the -c option. Using --no-clone-bundle disables the bundle files. Hence the following Repo command should yield the smallest download:

repo sync -c --no-clone-bundle 

(Keep in mind that Gingerbread is a several year old release. It won't work out of the box on a lot of recent hardware.)

like image 165
Magnus Bäck Avatar answered Sep 18 '22 14:09

Magnus Bäck


You should use this commands:

Example: for my personal AOSP Repo,

repo init --depth=1 -u https://github.com/zawzaww/aosp-android.git -b android-8.1.0 

and then,

repo sync  -f --force-sync --no-clone-bundle --no-tags -j$(nproc --all) 

You can learn more on my GitHub Repo

like image 39
Zaw Zaw Avatar answered Sep 18 '22 14:09

Zaw Zaw


repo sync -c --no-tags --no-clone-bundle -j2

Shortens my sync times greatly.

like image 32
Merc Avatar answered Sep 17 '22 14:09

Merc