IsmailS
IsmailS

Reputation: 10863

Migrate to GIT from TFS with multiple branches and their history

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

This only gets me main branch history. That was git tf.

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

This fails after fetching few branches at one of the merge changesets saying that Please report this case to the git-tfs developpers! (report here : https://github.com/git-tfs/git-tfs/issues/461 ). git branch gives me this

Release/20120719.1
Sprint/Sprint044
Sprint/Sprint045
Sprint/Sprint047
Sprint/Sprint048
Sprint/Sprint049
Sprint/Sprint050
*master

I've branches upto Sprint085 and quite a few release branches also. That was git tfs

Is there any way with git tf that I can fetch few other branches which properly creates merge commits so that I can see the history properly?

Upvotes: 5

Views: 7790

Answers (1)

Philippe
Philippe

Reputation: 31147

Disclamer: I am the one that added the branch support to git-tfs...

Forget git tf it doesn't support branches.

This fails after fetching few branches at one of the merge changesets saying that I should inform them with the details so they can improve.

Perhaps you should have followed the link given by git-tfs ;)

The link was this one. In the message there, you are informed of a work in progress to have a better branch support.

You should really try it. It is in really good shape and permit to support 2 other branch patterns : branch renamed and baseless merge. With this 2 last patterns, I hope we could support all the branch patterns (but because TFS is very suprising --in the bad meaning-- and a lot messy, I can't guarranty!)

If you can't have all your branches supported, it will remain the manual way to do it! But very long :

  • clone only the branch in another repository
  • fetch this branch in your main repository
  • use grafts to link your branch to its parent branch (that you should find manualy in TFS. Good luck because TFS is very bad at that!)
  • [optional] use git filter-branch to make the link permanent.

PS : perhaps you could even write a little script to automate all that...

Upvotes: 6

Related Questions