Azure DevOps Repos TFVC跨组织带完整历史迁移问题咨询
Azure DevOps TFVC 跨组织完整历史迁移操作指南
前置条件
- 你需要同时拥有源组织和目标组织的项目集合管理员权限,最低也要有两个组织对应项目的TFVC管理员以及代码完全读写权限
- 准备网络稳定的Windows设备(优先使用和两个Azure DevOps组织同区域的Azure虚拟机操作,可大幅提升迁移速度避免中断),提前安装好最新版的
Team Explorer以及TFVC命令行工具(tf.exe) - 提前在目标组织创建好空的TFVC项目,不要预先提交任何内容,避免历史冲突
迁移操作步骤
步骤1:导出源TFVC仓库的完整历史快照
首先在本地创建一个空的工作文件夹,用tf.exe绑定源仓库工作区:
tf workspace /new /collection:https://dev.azure.com/[源组织名称] /noprompt [自定义工作区名称]
映射源仓库根目录到本地空文件夹:
tf workfold /map $/[源项目名称] [本地空文件夹绝对路径] /workspace:[自定义工作区名称] /collection:https://dev.azure.com/[源组织名称]
拉取全量代码和所有历史记录:
tf get /version:T /recursive /all
操作完成后不要修改本地文件夹内的任何内容,确保本地文件和源仓库最新版本完全一致。
步骤2:推送全量历史到目标TFVC仓库
创建目标组织的本地工作区:
tf workspace /new /collection:https://dev.azure.com/[目标组织名称] /noprompt [目标自定义工作区名称]
映射目标空项目到刚才拉取了源仓库内容的本地文件夹:
tf workfold /map $/[目标项目名称] [拉取了源内容的本地文件夹绝对路径] /workspace:[目标自定义工作区名称] /collection:https://dev.azure.com/[目标组织名称]
将所有本地内容添加到目标仓库待提交列表,该操作会自动携带所有历史提交记录:
tf add /recursive * /noprompt
执行提交命令,全量历史会同步推送到目标TFVC仓库:
tf checkin /comment:"迁移全量TFVC历史记录 from 源组织[源组织名称] 源项目[源项目名称]" /recursive /noprompt
迁移结果验证
- 登录目标组织的Azure DevOps Repos,查看TFVC仓库的提交历史,确认最早的提交记录时间、提交人、提交说明和源仓库完全一致
- 随机抽查不同历史版本的代码内容,对比源仓库对应版本没有差异
- 验证标签、分支、搁置集等附加内容是否完整迁移,如果有缺失可以用tf.exe对应的导出导入命令单独补全
注意事项
- 不要使用手动下载压缩包再上传的方式迁移,该方式会丢失所有历史提交记录
- 如果仓库大小超过10G,建议按历史版本分段迁移,避免单次提交超时
- 迁移操作全程不要修改本地文件夹内的任何内容,否则会导致历史记录不一致
- 迁移过程中建议临时锁定源仓库的写入权限,避免新增提交需要额外同步增量内容
- 所有命令中的占位符([源组织名称]、[源项目名称]等)请替换为你的实际业务值后再执行
内容的提问来源于stack exchange,提问作者Rana Zain
相关产品推荐
相关产品推荐

