repo和jiri之间的主要区别是什么?

22

自一段时间以来,Google一直在推广在Android上下文中使用的repo工具,并已被某些与Android无关的其他项目采用。

在Google的操作系统Fuchsia中,引入了Jiri

这两个工具的背景是什么?如果它们没有解决相同的问题,那么它们的目标是什么?

1个回答

5
我的经验是,jiri允许您级联依赖项,因此这比Repo更进一步(在Repo中,您可以包含其他清单,但以fetch->include的方式级联它们可能更棘手)。
Repo允许您设置一个根清单,涵盖几乎所有项目并允许本地包含。每个项目都是一个独立的git存储库。单个repo清单是一个自包含实体,仅凭它自己即可描述整个项目结构。
Jiri允许您组合多个清单。每个“子存储库”都可以定义其自己的git存储库结构。
在您的顶层清单(checkout manifest或.jiri_manifest)中,您可以指定要包含哪些项目清单。每个项目清单都可以指定自己的依赖关系。以下是来自fuchsia项目的一些示例;请查看fuchsia清单文件:它从topaz项目中提取manifest/topaz,该项目又将其自身的依赖项作为特定GIT SHA导入manifest/peridot
你不能轻易地使用repo创建这种级联依赖关系,但这里也有一个缺点:jiri给了你很多灵活性,但可能会成为维护负担,特别是如果你的任何代码最终依赖于相同的子组件,但不同的SHAs(你可能因为多种原因而陷入这种情况)。

无论你的项目有多复杂,我通常建议使用repo。它在非常大的项目上(Android,集成超过1100个项目)有着良好的建立和证明记录。Jiri看起来很棒,但如果你没有及时解决依赖问题,它可能会适得其反。


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