多重仓库与Monorepo和嵌套Monorepos

时间:2019-07-11 13:30:25

标签: monorepo

我目前在我目前的工作场所任职,以改善我们的项目设置。我们有多个项目/产品,而其中一些相互依赖,而另一些则没有。

某些项目比其他项目更大,其中一个项目是如此之大,以至于它已经是monorepo。其他项目包含2到大约30个文件。

我的想法是创建一个包含所有项目(我们将其称为“ A”,“ B”,“ C”,“ D”)的monorepo。但是我发现这种方法存在多个问题:

  • 有些员工只需要处理项目“ A”,而其他员工只需要处理“ D”。在monorepo方法中,它们都可以在同一个git存储库上工作,并且理论上可以修改不应执行的项目中的代码。
  • 正如我所说,其中一个项目(假设为“ D”)已经是monorepo。我必须嵌套monorepos或更改“ D”的项目结构。

multi-repo方法具有很大的缺点,即每次更改项目时,我都必须重新发布任何项目的程序包,这增加了发布和安装依赖项的开销。

1 个答案:

答案 0 :(得分:-1)

查看此博客文章: https://medium.com/outbrain-engineering/mono-repo-vs-multi-repo-vs-hybrid-whats-the-right-approach-5436c575c6e0

它是在谈论我们在Outbrain上使用这些方法的经验。

总结了单/多仓库中的问题,并讨论了混合方法。 混合方法是说单仓库和多仓库的组合也是一种解决方案,它取决于用例。

Mono-Repo-可以快速运行,并且具有集中的位置来定义依赖项,但是在项目开始扩大规模时效果不好。

Multi-repo-为所有团队提供完全的自治权,但是很难跟踪和跟踪所有更改并更新仓库之间的依赖关系。