从TFS迁移到AzureDevOps

时间:2019-01-10 11:59:29

标签: tfs azure-devops migrate tfvc tfs-process-template

我们计划将一个大型团队项目从TFS迁移到Azure DevOps。 TFS存储库是经典的TFVC,而工作项模板是自定义的CMMI模板。要求是在迁移时将源代码存储库转换为具有历史记录的git,并将自定义的CMMI模板转换为Scrum工作项。我们也被问到保持源代码和工作项之间关系的可能性。 我读了很多文章和博客。很少有工具和选项,例如tfsmigrator,git-tfs和vsts-wi-migrator。 但是我不明白这个要求是可行的。微软甚至有了一个干净的开始,并将其作为首选。 我需要有关天蓝色devops社区的评论/案例。

2 个答案:

答案 0 :(得分:4)

从理论上讲,有很多可能,但实际上,我认识的世界上只有少数人可以执行您建议的迁移。 Martin Hinshelwood和David Corbin似乎专门研究这些类型的问题。我有很多经验,但是我似乎总是能够从您的一些关键要求中烦恼我,因为这些工作量很大,可能很昂贵,几乎不可能100%地实现。

如果必须这样做,我会尝试使您脱离一些要求。我会说服您采取以下路径:

  • 设置您的TFS服务器的克隆以多次测试此过程。
  • 在当前的TFS上,使用诸如witmorph之类的工具将CMMI模板转换为就地Scrum。由于没有明确的一对一路径,因此这已经是相当多的工作。现在,TFS允许就地更改工作项类型,您可能需要更新witmorph才能利用这些功能。
  • 然后甚至在不接触源代码之前直接迁移到Azure DevOps。
  • 更新您的TFVC签入注释以包括相关的工作项ID。您可以使用similar script to this遍历所有注释,并使用#1234工作项ID更新它们。
  • 然后使用“ Import from TFVC”将最近6个月的时间从TFVC导入到Git。
  • 保留旧的TFVC存储库并将其设置为只读。

这样您就可以保留历史记录。完全保真迁移是不可能的(TFVC并不是Git,并且某些事情不会转变)。如果您认为这很重要,那么您也可以在Git中获得相当多的历史记录。您的工作项将保持与TFVC的链接,因为您已将它们变形就位,其ID不会更改,并且不需要重新链接。既然您已经更新了签入说明,则提交也应该自动关联到您现有的工作项。

诸如构建,测试结果,发行版之类的其他内容也将以这种方式彻底迁移,最终您将接近目标解决方案的外观。

答案 1 :(得分:2)

[杰西-谢谢您的客气话]

是的,我做了很多与TFS相关的升级,其中许多是向Azure DevOps的高保真迁移。

正如Jesse指出的那样,TFVC不是Git,并且在概念上存在根本差异。我坚信,两者都有其优点(和局限性),而不是认为一个普遍优于另一个。

谈到历史,准确地将其中一个捕获的内容准确地表示为另一个是不切实际的。通常最好将历史记录保留在原始VCS中,并设置一个干净的环境以在新的VCS中前进。

请随时直接与我联系:david.corbin@dynconcepts.com