我们计划从 tfvc 迁移到 Git 版本控制。
我们有一些 GB 的代码和数千个变更集。我阅读了一些文章并浏览了 Microsoft 文档,发现了 2 个选项。
提示迁移 - 我可以在其中使用 Azure Devops 内置工具“导入存储库”。它有一些限制,例如导入的存储库应该为 1GB,并且我们可以获得 180 天的历史记录。
Git TFS - 这符合我的要求。但不确定它是否可以迁移整个代码和整个历史记录。
我怎样才能实现这个目标?除此之外还有其他选择吗?
最佳答案
GIT-TFS - This suites my requirement. But not sure if it can migrate entire code and entire history.
由于 TFVC 和 Git 存储数据的方式非常不同,所以没有工具是完美的。因此,您必须尝试很多事情并找到最适合您需求的方法。但我很确定没有一个是完美的。
这里你真正的两个选择是 git-tfs 和 git-tf。
但是 git-tfs 有一些优点。请参阅:
What's the difference between git-tf and git-tfs?
How can I achieve this?
除了我已经在本文档中添加的内容之外,我不能说太多: https://github.com/git-tfs/git-tfs/blob/master/doc/usecases/migrate_tfs_to_git.md
但由于这种迁移并不是一个完美的过程,因此您必须进行大量的试验和错误,直到找到适合您的好方法。 因此,从一个小的历史记录开始,因为从 TFVC 检索数据非常慢😕
And are there any options other than this?
有但没有一个是完美的解决方案(但仍然是可以尝试的解决方案)
https://github.com/viceroypenguin/tfs-fast-export https://github.com/kunom/tfsdb-fast-export
如果您仔细搜索,您会发现其他自定义解决方案对于特定迁移有效 1 或 2 次...
tip migration - where i can use Azure Devops built-in tool "Import Repository". It has limitations like Imported repository should be 1GB and we can get 180 days of history.
您的历史记录越大,迁移所有历史记录的意义就越小。 因此,仅迁移几个月并将 TFVC 历史记录保存为存档是非常有意义的。
您还可以尝试使用 git-tfs 或 git-tf 复制此“提示迁移”,只需选择要开始迁移的变更集即可。
当 TFVC 历史非常奇怪并且您并不真正需要它时,最后的手段可能是从最后一个变更集的 checkout 开始。这就是微软的建议(即使我不完全同意)。
此类迁移的成功在于灵活,接受它肯定不会完美(主要是由于 TFVC 存储数据的疯狂方式并让您做奇怪的事情)并找到继续前进的好方法!
关于git - 如何将 tfvc 迁移到 Git(包括历史记录),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63957700/