如何将TFS 2017中的TFVC代码迁移至Azure DevOps Services
迁移TFS 2017 TFVC仓库到Azure DevOps Services TFVC(保留完整历史)
官方原生迁移方案(优先推荐)
直接用Azure DevOps原生支持的TFVC迁移流程,无需第三方工具:
- 先在Azure DevOps Services的目标项目里创建一个空的TFVC仓库。
- 用Visual Studio连接到TFS 2017的源TFVC仓库,创建本地工作区时勾选"获取所有版本",拉取完整历史数据。
- 将该工作区的映射路径切换到Azure DevOps Services的目标TFVC仓库。
- 选择命令行或Visual Studio操作完成历史迁移:
命令行执行以下指令(替换为你的实际项目路径):
或者在Visual Studio源代码管理资源管理器中,右键源路径选择"迁移历史",按向导完成操作。tf merge /recursive /force /version:C1~T $/SourceTFVCRoot $/TargetTFVCRoot - 提交所有迁移变更后,检查目标仓库的变更集、分支、标签是否完整。
关键注意点:
- 迁移期间暂停源仓库的所有提交,避免变更遗漏。
- 本地工作区需预留足够存储空间,要存放所有历史版本数据。
- 权限、工作项关联需手动同步到目标仓库,迁移工具不会自动处理这类配置。
第三方工具辅助方案
- 使用Azure DevOps Migration Tools(这款工具主打工作项迁移,但也支持TFVC到TFVC的历史同步):
- 下载工具并配置JSON文件,填入源TFS 2017和目标Azure DevOps Services的组织URL、项目名称、仓库路径。
- 启用TFVC迁移模块,默认会迁移全量历史,也可指定变更集范围。
- 运行工具启动迁移,它会自动遍历源仓库的所有变更集并同步到目标TFVC仓库。
关于"TFVC转Git再转回TFVC"的问题
这种方式会丢失TFVC特有的元数据,比如变更集与工作项的绑定关系、原始分支的历史轨迹、标签的精确关联,而且转回TFVC时无法还原原始的变更集结构,完全不推荐用于需要保留完整历史的场景。
内容的提问来源于stack exchange,提问作者VijayCBH
相关产品推荐
相关产品推荐

