从具有多个分支及其历史记录的 TFS 迁移到 GIT

Ism*_*ilS 4 git tfs version-control-migration git-tfs git-tf

C:\>git tf clone https://companyname.visualstudio.com/DefaultCollection $/companyname/Main OldTFS --deep

这只能获取我的主分支历史记录。那是git tf

C:\>git tfs clone https://companyname.visualstudio.com/DefaultCollection $/companyname/Main --with-branches

在其中一个合并变更集获取几个分支后,此操作失败Please report this case to the git-tfs developpers! (report here : https://github.com/git-tfs/git-tfs/issues/461 )git branch给我这个

Release/20120719.1
Sprint/Sprint044
Sprint/Sprint045
Sprint/Sprint047
Sprint/Sprint048
Sprint/Sprint049
Sprint/Sprint050
*master
Run Code Online (Sandbox Code Playgroud)

我已经分支到 Sprint085 以及相当多的发布分支。那是git tfs

有什么方法git tf可以让我获取一些其他正确创建合并提交的分支,以便我可以正确地查看历史记录?

Phi*_*ppe 5

免责声明:我是向 git-tfs 添加分支支持的人......

忘记git tf它不支持分支。

在其中一个合并变更集获取几个分支后,此操作失败,并表示我应该通知他们详细信息,以便他们可以改进。

git-tfs也许您应该点击;)给出的链接

链接是这个。在消息中,您会被告知正在进行的工作,以获得更好的分支机构支持。

你真的应该尝试一下。它的状态非常好,并且允许支持另外 2 种分支模式:分支重命名和无基础合并。通过这最后 2 个模式,我希望我们能够支持所有分支模式(但是因为 TFS 非常令人惊讶——在不好的意义上——而且很混乱,我无法保证!)

如果您不能支持所有分支,则仍将采用手动方式!但很长:

  • 仅克隆另一个存储库中的分支
  • 在您的主存储库中获取此分支
  • 使用移植将您的分支链接到其父分支(您应该在 TFS 中手动找到该分支。祝您好运,因为 TFS 在这方面非常糟糕!)
  • [可选]用于git filter-branch使链接永久化。

PS:也许你甚至可以编写一个小脚本来自动化所有这些......