如何修复老旧TFS项目迁移至Azure DevOps Services时的流程配置错误
TFS 2010遗留项目迁移Azure DevOps Services修复方案
问题背景
需要将部分源自TFS 2010的老旧遗留项目迁移至Azure DevOps Services,这类项目的Process Configuration内容极少,无论适配Scrum、Agile、Basic等哪类项目类型,迁移工具都会输出固定报错。
- 本地服务器已按迁移要求升级到Azure DevOps Server 2020.1.1
- 仅需迁移带变更集历史的代码,无工作项、构建发布配置等需要迁移的内容,迁移完成后将下线本地服务器
报错信息
[Info @15:27:48.998] === Found 1 error(s) when compared against process TFS 2019 Update 1 Scrum === [Error @15:27:48.998] Custom processConfiguration typeField count '0' is different than system '8'. [Info @15:27:48.998] === End of error(s) when compared against process TFS 2019 Update 1 Scrum ===
根因分析
老旧TFS 2010创建的项目Process Configuration不包含迁移工具要求的标准TypeFields节点,仅保留了最基础的配置内容:
<?xml version="1.0" encoding="utf-16"?> <ProjectProcessConfiguration> <RequirementBacklog workItemCountLimit="1000"> <AddPanel /> </RequirementBacklog> <TaskBacklog workItemCountLimit="1000"> <AddPanel /> </TaskBacklog> <Properties> <Property name="BugsBehavior" value="Off" /> </Properties> </ProjectProcessConfiguration>
而TFS 2015及之后版本新建的项目包含完整的Process Configuration配置,符合迁移工具的校验要求。
修复方案
方案1:使用TFS Team Project Manager批量修复(推荐)
你提到的Jelle Druyts开发的TFS Team Project Manager完全支持该操作:
- 打开工具后连接到本地Azure DevOps Server 2020.1.1实例
- 选中所有需要修复的老旧项目,进入Process Configuration功能页
- 选择Transform功能,导入你手头TFS 2015正常项目的完整Process Configuration配置文件,执行批量写入即可
- 写入完成后重新运行迁移校验,报错会直接消失
方案2:手动单项目修复
如果仅需要修复少量项目,也可以用witadmin命令行工具手动操作:
- 从正常项目导出完整配置:
witadmin exportprocessconfig /collection:http://你的本地集合地址 /p:"正常项目名" /f:"完整配置.xml" - 给老旧项目导入配置:
witadmin importprocessconfig /collection:http://你的本地集合地址 /p:"待修复老旧项目名" /f:"完整配置.xml" - 导入完成后重新运行迁移校验即可
注:由于你不需要迁移工作项,导入的配置哪怕和原有项目工作项定义不完全匹配也不会影响代码迁移,只要满足迁移工具的Process Configuration校验要求即可。
内容的提问来源于stack exchange,提问作者Mark McCabe
相关产品推荐
相关产品推荐

