在 Azure DevOps Repos 上拆分大型软件项目

Split large Software Project on Azure DevOps Repos

我们目前正在从作为集中式版本控制的 IBM ClearCase 迁移到 Git/Azure DevOps。它是一个大型且长期发展的 C# 软件项目,有 100 多个 C# 项目分布在大约十几个解决方案之间,目前通过项目参考。

到目前为止,所有这些解决方案都是在一个公共文件夹中使用 ClearCase 进行管理的,但是对于 Git 来说,最好的做法是每个回购使用一个解决方案并使用 NuGet 包处理交叉回购的依赖关系。

我想问一下迁移和拆分此类项目的经验,您是否遇到过在一个存储库中包含多个 C# 解决方案更好的情况?

您如何管理属于具有一个发布周期的一个软件的多个存储库?我们计划使用发布分支,我认为我们必须编写一个脚本来分支属于该项目的所有存储库,或者是否有更方便的方法,可能由 Azure DevOps 提供?

我之前在ClearCase migration to Git上写过。

在所有情况下,场景都是相同的:

  • 不导入完整历史,只导入主要标签或 UCM 基线
  • 每个项目拆分 VOb,每个项目是一个 Git 存储库
  • 重新审视 Vobs 中的版本控制:一些大型 files/binaries 可能需要 .gitignore 在新的 Git 存储库中。

您仍然可以通过 Git submodules.

在一个父 Git 存储库中引用所有 Git 存储库(C# 项目)

你也可以走 monorepo 路线:毕竟,这就是微软用它的“The largest Git repo on the planet”所做的。

但在那种情况下,您可能需要使用 Scalar 和稀疏结帐。
参见: