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

时间:2014-03-12 05:15:01

标签: git tfs git-tfs git-tf version-control-migration

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

我已经分支到Sprint085,还有不少发布分支。那是git tfs

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

1 个答案:

答案 0 :(得分:3)

Disclamer:我是那个为git-tfs添加分支支持的人......

忘记git tf它不支持分支。

  

在其中一个合并变更集中取出几个分支后,这会失败,说我应该通知他们详细信息,以便他们可以改进。

也许你应该遵循git-tfs;)

给出的链接

链接为this one。在那里的消息中,您被告知work in progress有更好的分支支持。

你应该尝试一下。它具有非常好的形状并且允许支持其他2个分支模式:分支重命名和无基础合并。有了这两个最后的模式,我希望我们可以支持所有的分支模式(但是因为TFS非常令人惊讶 - 意思不好 - 而且很麻烦,我无法保证!)

如果您无法支持所有分支机构,它仍将是手动方式!但很长时间:

  • 仅克隆另一个存储库中的分支
  • 在主存储库中获取此分支
  • 使用grafts将你的分支链接到它的父分支(你应该在TFS中找到它。祝你好运,因为TFS非常糟糕!)
  • [可选]使用git filter-branch将链接设为永久链接。
PS:也许你甚至可以写一个小脚本来自动化所有......