Azure DevOps:一个存储库中有多个存储库或多个文件夹?

时间:2021-03-17 05:31:17

标签: azure-devops

在一个项目中,我计划拥有以下项目/项目: .Net 服务器、Ionic 应用程序、Angular 网站和 C# 管理工具。

一开始我做了一个项目,创建了一个仓库和文件夹;根目录中的服务器、应用程序、网站和管理工具。但由于我想使用管道并以最佳方式构建我的代码,我认为在我的项目中为每个项目创建一个存储库可能有一些优势。

通过这种方式,我将准确触发需要构建的项目管道,并且它可能更加模块化。 但我也看到了必须为同一功能多次推送的缺点 - 每个涉及的项目(例如 IonicApp 和服务器)。这样一来,一个功能的跨项目制作的内容就不太清楚了,可以一次性看到。

您会推荐哪种结构方式?

2 个答案:

答案 0 :(得分:0)

强烈建议为每个项目建立一个单独的存储库,并被认为是最佳实践。 有了这个,你会得到好处,比如;

  • 较小的存储库,
  • 每个项目都单独与 CICD 集成。

因为此时你将更新单个应用程序项目,所以为什么要打扰其他正在运行的项目

答案 1 :(得分:0)

通常,Azure Repos 上的 Git 存储库不应大于 10GB。这旨在确保所有客户的可靠性和可用性。

如果您将太多项目放入一个存储库,并且这些项目还可能包含一些大文件,则可能会大大增加检出、分支、获取和克隆代码的时间。这可能会给您带来糟糕的 Git 体验。有关更多详细信息,请参阅“Git limits”。

因此,就您而言,也许您可​​以考虑使用 Submodules

  • 为主项目创建一个存储库。

  • 为每个子项目创建一个仓库。

  • 将子项目的仓库设置为主项目仓库的子模块。

  • 对于涉及多个项目的特性的源代码,也可以为每个特性建立一个特定的仓库,然后将特性仓库设置为涉及项目仓库的子模块。

通过这种方式,您可以为每个存储库设置管道。当您希望子模块存储库中的更改也可以触发使用子模块的存储库的管道时,您还可以使用“pipeline-completion triggers”功能。