2015-02-07 54 views
7

我正在试图从相同名称的书中学习嵌入式Android。作者建议与AOSP姜饼分店合作。所以我跟着下载了源代码:AOSP回购同步花费时间太长

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

$ repo sync 

但是这太耗时了。另外从输出中,它似乎也喜欢它从其他分支下载源代码(我看到android-5 .....),这不是我想要的。我想知道这是为什么它需要这么长时间。

有没有人有同样的问题?请给我一个建议!谢谢!

+0

相关:https://superuser.com/questions/603547/how-can-i-limit-the-size-of-the-android-source-i-need-to-download-with-repo-syn – 2018-01-15 06:45:49

回答

16

AOSP 一个多GB的下载,所以没有多少你可以做的。但是,将-c/--current-branch选项传递给repo sync会导致Repo告诉Git只取出您真正需要的分支,而不是每个存储库的所有分支。对于像姜饼这样的旧版本,理论上这应该是相当有益的。但是,Repo会使用通过HTTP下载的Git捆绑软件对软件仓库进行种子处理,并且软件包文件不受-c选件的影响。使用--no-clone-bundle将禁用软件包文件。因此,以下回购命令应产生最小的下载:(记住,姜饼是几个岁的释放箱上最近很多硬件将无法正常工作了。)

repo sync -c --no-clone-bundle 

+0

但是,如果你指定一个分支(例如棉花糖),它不应该不下载其他分支(牛轧糖,姜饼)?例如,如果你用-b指定棉花糖的清单, – 2017-03-05 09:30:57

+0

@KaizerSozay:是的,这就是我想说的。用'-c'你只需下载需要的分支。 – 2017-03-14 07:38:07

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

大大缩短了我的同步时间。

+0

一般来说,如果答案中包含有关 命令的意图的解释,以及为什么解决问题而不介绍其他问题,则答案会更有帮助。你能扩展'-j2'开关的功能吗?它有什么帮助? – 2017-12-08 21:59:04

+1

从'make'开关已知'-j',它设置要使用的作业数量(并行度)。 '-j2'将作业数设置为2(即使用2个内核)。在Linux上,您通常使用'-j \'nproc \''或'-j $(getconf _NPROCESSORS_ONLN)'来自动检测核心数量。 – pevik 2017-12-19 20:58:34

0

repo init --depth 1

这是可能会提高同步速度,因为它应该只下载最新版本的回购协议的另一种选择。

相关问题