在我们公司,我们有一个非常旧的代码库,它在 Azure DevOps 上使用 TFVC 托管。该存储库已增长到 +- 10GB,这对于 GIT 存储库来说太大了。它包含大量我们可以删除的冗余数据。然而,这需要一些时间,我们不想在此迁移过程中停止开发。
旧的仓库大致设置如下:
$Project
|\_FolderA
|\_FolderB
|\_FolderC
|\_FolderC_OLD
|\_SomeAssetsFolder
|\_Some3rdParyLibraryFolder*
文件夹不是分支。它们是项目根目录内的文件夹。
我们迁移到 GIT 的策略如下;
然而,这似乎并没有达到预期的效果;我们似乎无法分支整个项目,只能分支项目内部的文件夹。
从 TFVC 迁移到 Git 肯定很棘手,但通过正确的方法是可行的。这是一个可能有帮助的策略:
高层战略
克隆您的 TFVC 存储库: 首先将 TFVC 存储库克隆到 Git 存储库中。使用 git-tfs 等工具可以帮助您保持提交历史记录完整。虽然过程有点长,但这是坚实的第一步。
设置新的 Git 存储库: 获得 Git 克隆后,在服务器上设置一个新存储库(例如 Azure DevOps 或 GitHub)并将克隆的存储库推送到那里。这个新的 Git 存储库将成为您的主要开发分支。
清理仓库: 由于您的存储库非常大,您需要通过删除不必要的文件和文件夹来清理它。像 BFG Repo-Cleaner 这样的工具非常适合此目的。它有助于保持回购规模的可控性并提高性能。
保持 TFVC 和 Git 同步: 为了确保开发顺利进行,请设置一种方法来保持 TFVC 和 Git 存储库同步。这样,在 TFVC 中所做的任何更改都会镜像到 Git 存储库中。您可以使用脚本或 CI 工具来处理此同步。
最终同步和切换: 准备好后,进行最终同步以捕获 TFVC 中最后一刻的更改。完成后,通知您的团队有关切换的信息,并更新您的 CI/CD 管道以指向新的 Git 存储库。
有关更详细的步骤,您可能需要查看此Microsoft 文档。它涵盖了从检查最新版本、删除二进制文件、转换配置和执行迁移的所有内容。
这样,您应该能够从 TFVC 过渡到 Git,而无需停止开发。