我最近开始研究Android开发(AOSP),看到了“repo”工具/包装器,可处理所有Android的子项目。
虽然我认为repo在它所做的事情上表现得相当不错,但我想知道是否有任何替代方法。
我认为git子模块对此已足够,但因为某些“缺点”(我觉得根本就不是缺点),许多互联网帖子建议不要使用子模块。
考虑到不同子项目的源代码应该有自己的发布或独立代码库,我不确定git subtree是否是一个好的解决方案。
如果有人能指出一些repo的替代方案或其他相关信息就太好了。
我最近开始研究Android开发(AOSP),看到了“repo”工具/包装器,可处理所有Android的子项目。
虽然我认为repo在它所做的事情上表现得相当不错,但我想知道是否有任何替代方法。
我认为git子模块对此已足够,但因为某些“缺点”(我觉得根本就不是缺点),许多互联网帖子建议不要使用子模块。
考虑到不同子项目的源代码应该有自己的发布或独立代码库,我不确定git subtree是否是一个好的解决方案。
如果有人能指出一些repo的替代方案或其他相关信息就太好了。
Repo工具是处理AOSP代码的标准方式。当然,你可以手动管理repos,但这样会很繁琐且容易出错。
否则,使用子模块或子树将无法与谷歌和其他在AOSP代码库上工作的人进行交互,所以除非您计划单向fork AOSP,否则没有其他替代方案可以用于处理AOSP的工具。
repo有一个巨大的缺点:它会分离HEAD。你不能在特定的子仓库下切换到特定的分支。除非你执行repo start
tsrc,据我所知,功能较少,但不具有这个特定的问题。
此外,您可以使用构建系统的嵌入式机制,如Bazel(git_repository/new_git_repository)。