我们目前正在从作为集中式版本控制的IBM ClearCase迁移到Git/AAzure DevOps。它是一个大型且长期发展的C#软件项目,有100多个C#项目分布在大约十几个解决方案中,它们之间存在一些依赖关系,目前通过项目参考。
到目前为止,所有这些解决方案都是在一个公共文件夹中使用ClearCase进行管理的,但对于Git来说,最好的做法是每个repo使用一个解决方案,并使用NuGet Packages处理跨repo的依赖关系。
我想请教一下迁移和拆分此类项目的经验,您是否遇到过在回购中包含多个C#解决方案更好的情况?
如何在一个发布周期内管理属于一个软件的多个存储库?我们计划使用发布分支,我认为我们必须编写一个脚本来分支属于该项目的所有存储库,或者有更方便的方法,也许是由Azure DevOps提供的?
我以前写过关于ClearCase迁移到Git的文章。
在所有情况下,情况都是一样的:
- 不导入完整的历史记录,只导入主要标签或UCM基线
- 每个项目拆分VOb,每个项目是一个Git存储库
- 重新访问Vobs中的版本:一些大型文件/二进制文件可能需要在新的Git存储库中使用
.gitignore
'd
您仍然可以通过Git子模块在一个父Git存储库中引用所有Git存储(C#项目(。
你也可以走单回购路线:毕竟,这就是微软正在做的事情;地球上最大的Git回购";。
但在这种情况下,您可能需要使用Scalar和稀疏签出
请参阅:
- "通过稀疏结账将您的单回购规模缩小">
- "使用Git的稀疏索引">