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 目录现在大小为 30 GB。这是预期的大小吗?如果没有,那么我推测我有来自存储在 .repo 目录中的其他分支/标签的历史记录。

有没有办法减小 .repo 目录的大小?我想仅限于源/对象/图像/等。我需要我正在处理的特定分支。硬盘空间对我来说比下载时间更重要。

我看到git gc用于 .git 存储库,但在这种情况下不起作用。.repo 存储库是否有等价物?

注意:我确实尝试repo prune过,但这并没有减少 .repo 目录的大小。

4

2 回答 2

10

-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 等压缩文件系统使用正确的挂载选项,但我不确定性能影响。

于 2015-07-30T17:25:34.850 回答
1

未经测试,但我认为您可以使用该-c开关仅下载您当前需要的分支。

使用该标志,repo 将仅下载清单中指定的修订版(分支),而不是远程服务器上的所有分支。因此,它将为我们节省相当多的空间,并且再次下载所需的时间更少。

来源和更多信息:http: //xda-university.com/as-a-developer/repo-tips-tricks

于 2014-11-05T15:48:39.173 回答