到目前为止,我的经验是 jiri 允许您级联依赖项,因此这比 Repo 更进一步(您可以在其中包含其他清单,但以 fetch->include 方式级联它们可能会更棘手)。
Repo 允许您设置一个涵盖几乎所有项目的根清单 + 允许本地包含。每个项目都是一个独立的 git 存储库。单个存储库清单是一个独立的实体,它本身描述了整个项目结构。
Jiri 允许您组合多个清单。每个“子存储库”都可以定义自己的 git 存储库结构。
在顶级清单(签出清单或 .jiri_manifest)中,您指定要包含的项目清单。然后,每个项目清单都可以指定其自己的依赖项。以下是fuchsia项目的一些示例;看一下fuchsia清单文件:它从项目中提取清单/黄玉topaz,而项目又在特定的 GIT SHA 处导入清单/橄榄石作为其自己的依赖项。
您无法轻松地使用 repo 创建这种类型的级联依赖关系,但这里也有一个缺点:jiri 为您提供了很大的灵活性,但可能会带来维护负担,特别是在某些时候您的任何代码最终依赖于相同的子组件,但不同的 SHA(由于多种原因,您可能最终会遇到这种情况)。
无论您的项目有多复杂,我通常都会建议使用 repo。这在大型项目(Android,集成了 1100 多个项目)方面拥有良好的记录。Jiri 在纸面上看起来很棒,但如果您不及时解决依赖问题,可能会适得其反。
| 归档时间: |
|
| 查看次数: |
525 次 |
| 最近记录: |