我正在使用Android源代码。每次我执行repo sync
我都会下载大量特定于设备的存储库,我不想要,因为我只针对一个设备,比方说,HTC Ace。
有没有办法避免这种开销?
答案 0 :(得分:3)
正如其他人已经建议的那样,本地清单可用于修补原始清单。但是,清单也可以将项目分组,您可以使用-g
选项repo init
来选择要下载的项目组。
我认为您不关心的所有设备gits都已放置在“设备”组中,因此通过在其前面添加连字符来排除该组应该可以实现您想要的效果。默认的一组组是“default,platform- platform ”,例如“default,platform-linux”或“default,platform-darwin”,尽管platform- *条目似乎与AOSP项目的标记方式不符。无论如何,这应该摆脱不需要的项目:
repo init -u ... -g default,-device
您可以浏览清单(.repo/manifest.xml
)以查找您不感兴趣的其他群组。
答案 1 :(得分:1)
aosp方式可能是使用repo工具来排除或包含特定的包。最好的方法是添加自己的本地清单,删除不需要的软件包。例如,这是一个示例文件:
<manifest>
<remote name="origin"
fetch="ssh://git@github.com/MyRepository/" />
<remove-project name="device/lge/hammerhead"/>
<remove-project name="device/lge/mako"/>
</manifest>
将其放入remove_manifest.xml(您可以根据需要命名)并将其放入存储库中的.repo / local_manifests。
Cyanogen记录了我们所有人的local_manifests,因此您可以在此处参考他们的工作:Using Local Manifests