如何将包括历史记录的TFVC迁移到Git

3
我们计划从tfvc迁移到Git版本控制。
我们有几个GB的代码和成千上万的更改集。我阅读了一些文章并查看了Microsoft文档,发现了两个选项。
  1. 提示迁移-在这里我可以使用Azure Devops内置工具“导入存储库”。它有限制,如导入的存储库应为1GB,我们可以获取180天的历史记录。
  2. Git TFS-这符合我的要求。但不确定它是否可以迁移整个代码和整个历史记录。
如何实现这一目标?还有其他选项吗?
2个回答

2
GIT-TFS - 这符合我的要求。但我不确定它是否可以迁移整个代码和整个历史记录。
因为TFVC和Git存储数据的方式非常不同,没有工具是完美的。所以你将不得不尝试许多方法,找到最适合你需求的方式。但我相信没有一个工具是完美的。
在这里,您真正的选择是git-tfs和git-tf。
但是git-tfs有一些优势。请参见: git-tf和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

如果你搜索得当,你会发现其他定制化的解决方案,这些解决方案对于特定的迁移工作可能只起到一两次的作用...
提示迁移-我可以使用Azure Devops内置工具“导入存储库”。它有一些限制,如导入的存储库应为1GB,我们可以获得180天的历史记录。
你的历史记录越大,迁移所有历史记录就越没有意义。因此,仅迁移几个月并将TFVC历史记录保留为归档可能是完全合理的。
你也可以尝试使用git-tfs或git-tf来复制这种“提示迁移”,只需选择从哪个变更集开始进行迁移。
当TFVC历史记录非常奇怪且你真的不需要它时,最后的手段可能是从最后一个变更集的检出开始。这是Microsoft建议的做法(即使我不完全同意)。
这种迁移的成功在于要灵活,接受它肯定不会完美(主要是由于TFVC存储数据的方式和让你做奇怪的事情),找到前进的正确方法!

1

git-tfsgit-tf工具运行非常良好。Git-tfs在自述文件中有一些良好的文档说明。但是请记住它的工作原理。TFS相当受限制。所发生的是将提取所有的TFS历史记录并从中创建本地Git存储库。从那里,您可以将其放置在任何想要的Git远程位置。它应该能够完美地保留历史记录和作者名称。如果要在Azure DevOps中转换到Git,则有一个migration tool可以帮助您。

此外,请注意这是一个普遍问题,并且以前已经被问及


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接