在 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 和稀疏结帐。
参见:
我们目前正在从作为集中式版本控制的 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 和稀疏结帐。
参见: