我们如何在不停止开发的情况下从 TFVC 迁移到 GIT?

问题描述 投票:0回答:1

在我们公司,我们有一个非常旧的代码库,它在 Azure DevOps 上使用 TFVC 托管。该存储库已增长到 +- 10GB,这对于 GIT 存储库来说太大了。它包含大量我们可以删除的冗余数据。然而,这需要一些时间,我们不想在此迁移过程中停止开发。

旧的仓库大致设置如下:

$Project  
|\_FolderA  
|\_FolderB  
|\_FolderC  
|\_FolderC_OLD  
|\_SomeAssetsFolder  
|\_Some3rdParyLibraryFolder*

文件夹不是分支。它们是项目根目录内的文件夹。

我们迁移到 GIT 的策略如下;

  1. 将项目分支到新项目
  2. 在旧项目存储库上继续开发的同时修剪新项目
  3. 完成修剪和其他必要的编辑后,将旧的projectRepo合并到新项目中
  4. 使用 Git-TFS 将新存储库转换为 GIT 存储库
  5. 完成

然而,这似乎并没有达到预期的效果;我们似乎无法分支整个项目,只能分支项目内部的文件夹。

  • 即使我们必须单独分支每个文件夹,我们是否能够将旧项目合并到新项目中?
  • 是否有另一种方法可以将完整的项目克隆到一个新项目中,以便我们稍后合并更改?
git azure-devops tfs tfvc
1个回答
0
投票

从 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,而无需停止开发。

© www.soinside.com 2019 - 2024. All rights reserved.