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

urn*_*eld 18 git android repo

谷歌一直在推广自Android环境中的回购,并已被其他一些与Android无关的项目采用.

在谷歌的操作系统中,正在推出Fuchsia Jiri.

这两种工具的背景是什么?如果他们没有解决同样的问题,他们的目标是什么?

Tom*_*z W 5

到目前为止,我的经验是 jiri 允许您级联依赖项,因此这比 Repo 更进一步(您可以在其中包含其他清单,但以 fetch->include 方式级联它们可能会更棘手)。

Repo 允许您设置一个涵盖几乎所有项目的根清单 + 允许本地包含。每个项目都是一个独立的 git 存储库。单个存储库清单是一个独立的实体,它本身描述了整个项目结构。

Jiri 允许您组合多个清单。每个“子存储库”都可以定义自己的 git 存储库结构。

在顶级清单(签出清单或 .jiri_manifest)中,您指定要包含的项目清单。然后,每个项目清单都可以指定其自己的依赖项。以下是fuchsia项目的一些示例;看一下fuchsia清单文件:它从项目中提取清单/黄玉topaz,而项目又在特定的 GIT SHA 处导入清单/橄榄石作为其自己的依赖项。

您无法轻松地使用 repo 创建这种类型的级联依赖关系,但这里也有一个缺点:jiri 为您提供了很大的灵活性,但可能会带来维护负担,特别是在某些时候您的任何代码最终依赖于相同的子组件,但不同的 SHA(由于多种原因,您可能最终会遇到这种情况)。

无论您的项目有多复杂,我通常都会建议使用 repo。这在大型项目(Android,集成了 1100 多个项目)方面拥有良好的记录。Jiri 在纸面上看起来很棒,但如果您不及时解决依赖问题,可能会适得其反。