谷歌在Android背景下的推广已经有一段时间了repo,并且已被其他一些与Android无关的项目采用。
在Google的操作系统中,正在推出Fuchsia Jiri。
这两种工具的背景是什么? 如果他们没有解决同样的问题,他们的目标是什么?
答案 0 :(得分:1)
到目前为止,我的经验是jiri允许您层叠依赖关系,所以这比Repo更进一步(其中you can include其他清单,但是以fetch-> include方式层叠它们可能更棘手)
Repo允许您设置一个根目录清单,该清单清单涵盖了几乎所有项目,并且允许本地包含。每个项目都是独立的git存储库。单个回购清单是一个自包含的实体,它可以单独描述整个项目结构。
Jiri允许您组合多个清单。每个“子存储库”都可以定义自己的git存储库结构。
在顶级清单(签出清单或.jiri_manifest)中,指定要包括的项目清单。然后,每个项目清单都可以指定其自己的依赖性。这是fuchsia项目的一些实例;看一下fuchsia清单文件:它从topaz
项目中提取manifest/topaz,该项目又将manifest/peridot作为特定的依赖项导入到特定的GIT SHA。 / p>
您无法使用repo轻松创建这种类型的级联依赖关系,但是这里还有一个缺点:jiri为您提供了很多灵活性,但可能会带来维护负担,尤其是在某些时候某些代码最终结束时取决于相同的子组件,但具有不同的SHA(并且由于多种原因,您可能最终会遇到这种情况)。
无论您的项目有多复杂,我通常都建议您使用repo。对于大型项目(Android,集成了1100多个项目),它具有良好的建立和可靠的记录记录。 Jiri在纸面上看起来不错,但如果您不及时解决依赖性问题,可能会适得其反。
答案 1 :(得分:-2)
Repo和Jiri的主要区别在于jiri是用于管理多存储库项目的命令行工具。 jiri最初旨在帮助钒开发,但后来被提取为一个独立项目,现在已被其他各种项目使用。
jiri在这里可用:https://github.com/vanadium/go.jiri(我经常使用Jiri)
安装Vanadium的“获取存储库”步骤会将jiri工具安装到$JIRI_ROOT/.jiri_root/scripts.
运行jiri帮助以了解有关该工具的更多信息。 (请注意,此命令假定您的PATH包含$JIRI_ROOT/.jiri_root/scripts.
),并且Repo是一个软件存储库,通常被称为“ repo”,是可以从其中检索软件包并将其安装在计算机上的存储位置。 / p>