问题描述
如何将 TFVC 项目从 TFS 迁移到 AZDO?
目标:
是使用 TFVC 在 (TFS 2017) 上迁移宿主项目,在那里也使用 TFVC 将它们切换到 Azure DevOps 服务 (AZDO)。
我的背景:
- 托管当前源项目的 TFS 2017 服务器版本 2。
- AZDO 2019 服务希望托管针对 TFS 的项目。
情境愿望:
-
在 AZDO 服务上保留源项目 (TFS) 的历史记录。
-
我只是想将 TFVC 中的项目 (TFS) 迁移到 TFVC 中的 (AZDO),而不进行任何 TFVC -> GIT 转换。
-
我想避免将 2018 年的 TFS 2017 服务器更新为 AZDO 服务器之后切换到 AZDO 服务。
你懂的 只是想在 TFVC 中打开一个项目,这是很多步骤 TFS2017 到 AZDO 上的 TFVC
解决方法
最简单的迁移方法是将 TFS2017 服务器升级到 Azure Devops Server 2019,然后使用完全保真导入功能将整个数据库备份上传到 Azure Devops 服务。
目前迁移工具支持 TFS2018u3 以及 Azure Devops Server 2019 和 2019u1 以及 2020 可以导入到服务中。我们会定期执行此类导入,将 TFS 服务器备份还原到临时 SQL 服务器、安装正确版本的 TFS/Ads 并让它在安装期间就地执行升级是一个非常简单的过程。然后使用迁移工具将集合导入 Azure Devops Server。根据您收藏的大小,这可能需要几分钟到几个小时。在某些情况下,我也在笔记本电脑上进行了升级,直接在 Windows 10 上安装了 Azure Devops Server 和 SQL Server Developer 版本。即使是试用版也可以。
有关所有详细信息。导入流程,见:
如果要将 tfvc 项目从一台 TFS 服务器导入另一台 TFS 服务器/Azure Devops 服务器,您可以分离当前 TFS 服务器上的项目集合,然后在另一台服务器上备份/恢复数据库。会自动升级 如果您的项目集合有多个项目,您可以在附加和升级您的集合后删除不需要的项目。
有一些工具可以执行从一台服务器到另一台服务器的历史重播,这些工具无法导入所有内容,您的更改 ID 会更改,并且您将丢失进行提交的确切日期(可能还有提交的用户)如果该帐户不再存在,则进行提交)。工具如:
根据您收藏的时间和规模,迁移数据可能需要几个小时。如果数据先前已被删除/破坏或跨项目分支或在分支操作期间编辑,则重放可能会失败或可能被迫执行替代操作,其中一些操作不再受支持。我在几个项目中使用过 opshub,其中一些项目完全无法迁移,另一些项目迁移时数据不完整或不正确。这是 4 年前的事,也许这些是错误并已修复,但自从发布导入工具后,我们几乎只使用了这些工具。
PS:使用 tfs-git 将(部分)您的 TFVC 存储库转换为 git 将是一种替代方法,我建议您进一步研究。 TFVC 已被宣布为功能完备,但在过去几年中很少受到青睐。新的多阶段 YAML 管道不支持它,不推荐使用 VS Code 的集成,不推荐使用 tfvc 的跨平台命令行工具,因此也支持 eclipse、rider 和 intellij。 VS 2019 中的团队资源管理器现在随着新的 git 功能的发布而被推到后台,这些功能已经脱离了团队资源管理器窗口。很明显,TFVC 正在为一个失败的原因而战,而 Git 正在获胜,你需要在某个时候切换。