替代 git-repo(AOSP repo)的选择

14

我最近开始研究Android开发(AOSP),看到了“repo”工具/包装器,可处理所有Android的子项目。

虽然我认为repo在它所做的事情上表现得相当不错,但我想知道是否有任何替代方法。

我认为git子模块对此已足够,但因为某些“缺点”(我觉得根本就不是缺点),许多互联网帖子建议不要使用子模块。

考虑到不同子项目的源代码应该有自己的发布或独立代码库,我不确定git subtree是否是一个好的解决方案。

如果有人能指出一些repo的替代方案或其他相关信息就太好了。


1
只要勇敢地使用子模块,它们就是一个强大的工具。 - Nick Volynkin
子模块很棒,如果你正确使用它们的话。如果您有一个它们没有设计的用例,则不要使用它们。 - strugee
1
@strugee,“如果你使用它们得当” - 这意味着公司中的所有开发人员都正确使用它们。这是不可能的。在我不谦虚的看法中,90%的人根本没有资格从事他们的工作。在选择需要纪律和知识的工具时应考虑到这一点。 - Michael A.
2个回答

7

Repo工具是处理AOSP代码的标准方式。当然,你可以手动管理repos,但这样会很繁琐且容易出错。

否则,使用子模块或子树将无法与谷歌和其他在AOSP代码库上工作的人进行交互,所以除非您计划单向fork AOSP,否则没有其他替代方案可以用于处理AOSP的工具。


2

repo有一个巨大的缺点:它会分离HEAD。你不能在特定的子仓库下切换到特定的分支。除非你执行repo start

tsrc,据我所知,功能较少,但不具有这个特定的问题。

此外,您可以使用构建系统的嵌入式机制,如Bazel(git_repository/new_git_repository)。


我在寻找一个“正在使用”的tsrc示例时四处查看,发现https://github.com/stigmee/manifest有用于比较repo和tsrc的清单文件。 - wbob

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