33

我在 Android Enthusiasts 上发布了这个问题,但认为这是一个错误的地方,所以我从那里删除了它并在这里“再次”询问它。


这是一个菜鸟问题,如果是,请原谅我,但我只想清楚地理解基本概念。阅读 repo 帮助和 Google 的 repo 命令参考页面并没有真正的启发。我从 Google 的参考页面中了解了一些内容,但我仍然需要更多说明。

按照有关如何下载 android 源代码的说明,我在 Ubuntu shell 上执行了这两个命令:(我已经处理了环境的所有先决条件。)

~/android4.2.2$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1.2
~/android4.2.2$ repo sync -j4

等了半天repo下载完成,我最终在android4.2.2目录下下载了19G的素材。那么到底发生了什么,当谷歌说我应该只期待大约 8G 的源文件时,为什么它会达到 19G?

4

1 回答 1

55

repo是一个 python 包装脚本git,它的 Google Source页面将它定义为

repo - 多个 Git 存储库工具

  1. repo init命令初始化当前目录中的 repo。也就是说,它会下载最新的 repo 源和一个manifest.xml描述 git repositories 目录结构的文件,并将所有这些存储.repo在当前目录的子目录中。在您的情况下,您使用了一个可选-b参数,用于选择要结帐的分支。默认情况下(即-b不使用参数时),使用主分支。

  2. repo sync将工作树更新到最新版本。也就是说,它将本地项目目录与清单文件中指定的远程存储库同步。如果本地项目尚不存在,它将从远程存储库中克隆一个新的本地目录,并按照清单中的指定设置跟踪分支。如果本地项目已经存在,它将更新远程分支并将任何新的本地更改重新设置在新的远程更改之上。-j参数用于设置要执行的并行作业的数量。默认值可以在清单中定义,也可以在命令行中覆盖,如您的情况。

当谷歌说我应该只期待大约 8G 的源文件时,为什么它会达到 19G?

那应该是因为除了源文件之外,您将获得从时间开始以来的所有 Android 历史 :)

希望这可以帮助。

于 2014-07-30T23:24:33.113 回答