减小Android源代码仓库.repo目录的大小。

6

我一直在使用类似以下命令在不同的Android源代码分支间进行切换:

repo init -u https://android.googlesource.com/platform/manifest -b android-4.4_r1.2
repo sync

最新的标签是android-5.0.0_r2。我注意到我的.repo目录现在大小为30GB。这个大小是否符合预期?如果不是,那么我猜测我在.repo目录中存储了我使用过的其他分支/标签的历史记录。
有没有办法减小.repo目录的大小?我想限制只需要特定分支所需的源代码/对象/图像等。对我来说,硬盘空间比下载时间更重要。
我看到.git仓库上使用git gc,但在这种情况下不起作用。是否有一个相当于.repo仓库的命令?
注:我确实尝试过repo prune,但没有减小.repo目录的大小。
2个回答

12

-c 标志似乎不再被支持了,但这是你可以做的。

在撰写本文时,repo init -u https://android.googlesource.com/platform/manifest -b android-5.1.0_r5 会创建价值33GB 的文件。

通过添加 --depth=1 ,此大小可以减少到21GB

通过添加 --groups=all,-notdefault,-device,-darwin,-x86,-mips,-exynos5 来排除您不感兴趣的设备和组件,此大小可以减少到19GB

仅限于存储,您可以删除 .repo/ 内每个 .git 存储库中的签出文件以节省更多空间,但我不确定如何编写脚本。如果您确实这样做了,则 repo sync 会在需要时检出“缺失”的文件。

作为参考,我的完整命令行是
repo init -u https://android.googlesource.com/platform/manifest -b android-5.1.0_r5 --depth=1 --groups=all,-notdefault,-device,-darwin,-x86,-mips,-exynos5,mako
因此,此树仅适用于 Nexus 4。我还没有尝试从此树构建,但没有理由它不会工作。

您还可以通过指定本地清单来删除未使用的项目,甚至可以使用正确的挂载选项从压缩的文件系统(如 btrfs)中进行操作,但我无法确定性能影响。


2
未经测试,但我认为您可以使用-c开关仅下载您当前需要的分支。
通过该标志,repo将仅下载在清单中指定的修订版(分支),而不是在远程服务器上的所有分支。这样可以节省空间,并且再次下载所需时间更短。
来源和更多信息:http://xda-university.com/as-a-developer/repo-tips-tricks

虽然这可以帮助最小化单个分支的空间,但如果我下载多个分支,我认为这并没有帮助。我仍然会在分支不重叠的地方得到额外的内容。 - GrandAdmiral
1
我不认为“-c”还得到支持。在当前仓库源中没有关于它的参考。 - Adam Baxter
支持 -c。请参见 https://source.android.com/setup/develop/repo#sync。 - Padmanabha V

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接