【问题标题】:How to migrate tfvc to Git including history如何将 tfvc 迁移到 Git,包括历史
【发布时间】:2021-01-05 12:11:18
【问题描述】:

我们计划从 tfvc 迁移到 Git 版本控制。

我们有几 GB 的代码和数千个变更集。我阅读了一些文章并浏览了 Microsoft 文档并找到了 2 个选项。

  1. 提示迁移 - 我可以在其中使用 Azure Devops 内置工具“导入存储库”。它有一些限制,比如导入的存储库应该是 1GB,我们可以获得 180 天的历史记录。

  2. Git TFS - 这符合我的要求。但不确定它是否可以迁移整个代码和整个历史。

我怎样才能做到这一点?除此之外还有其他选择吗?

【问题讨论】:

  • 嗨@Kart,这个问题有更新吗?如果答案能给你一些帮助,请随时告诉我。只是提醒this

标签: git azure azure-devops tfvc git-tfs


【解决方案1】:

GIT-TFS - 这符合我的要求。但不确定它是否可以迁移整个代码和整个历史。

因为 TFVC 和 Git 存储数据的方式非常不同,所以没有工具是完美的。因此,您将不得不尝试很多事情并找到最适合您需求的方式。但我很确定没有一个是完美的。

这里你真正的 2 个选项是 git-tfs 和 git-tf。

但是对于 git-tfs 有一些优势。见:

What's the difference between git-tf and git-tfs?

我怎样才能做到这一点?

我不能说比我已经在本文档中添加的内容更多: https://github.com/git-tfs/git-tfs/blob/master/doc/usecases/migrate_tfs_to_git.md

但是由于这种迁移不是一个完美的过程,您将不得不进行大量的试验和错误,直到找到适合您的好方法。 所以从一个小的历史开始,因为从 TFVC 中检索数据非常慢?

除此之外还有其他选择吗?

有但没有一个是完美的解决方案(但仍然有解决方案可以尝试)

https://github.com/viceroypenguin/tfs-fast-export https://github.com/kunom/tfsdb-fast-export

如果您搜索得好,您会发现其他自定义解决方案对特定迁移工作了 1 或 2 次...

提示迁移 - 我可以在其中使用 Azure Devops 内置工具“导入存储库”。它有一些限制,比如导入的存储库应该是 1GB,我们可以获得 180 天的历史记录。

您的历史记录越大,迁移所有历史记录的意义就越小。 因此,仅迁移几个月并将 TFVC 历史记录保存为存档是非常有意义的。

您还可以尝试使用 git-tfs 或 git-tf 复制此“提示迁移”,只需选择要从哪个变更集中开始迁移。

当 TFVC 历史非常奇怪并且您并不真正需要它时,最后的手段可能是从最后一个变更集的签出开始。这是微软的建议(即使我不完全同意)。

这种迁移的成功在于灵活,接受它肯定不会完美(主要是由于 TFVC 存储数据的疯狂方式让你做奇怪的事情)并找到继续前进的好方法!

【讨论】:

    【解决方案2】:

    git-tfsgit-tf 工具运行良好。 Git-tfs 在自​​述文件中有一些很好的文档。不过,请记住这是如何工作的。 TFS 非常有限。发生的情况是,您将提取所有 tf​​s 历史记录并从中创建一个本地 git 存储库。从那里你可以放入任何你想要的 git 遥控器。它应该能够很好地保留历史和作者姓名。如果您要在 Azure DevOps 中迁移到 git,有一个 migration tool 可以帮助您。

    另外,请记住,这是一个热门问题,并且一直是 asked before

    【讨论】:

      猜你喜欢
      • 2021-08-16
      • 2015-03-23
      • 2021-12-12
      • 1970-01-01
      • 2019-08-11
      • 2021-06-20
      • 2022-10-25
      • 2014-11-05
      • 1970-01-01
      相关资源
      最近更新 更多