Search code examples
tfsmonodevelop

Use Team Foundation Service and Git Support from Monodevelop


NOTE: This question was asked before the release of git support in the TFS Service, and this works quite well now. Read more about using tfs service with monodevelop here: http://sviluppomobile.blogspot.se/2013/02/how-to-use-team-foundation-service-with.html

We decided to try out Team Foundation Service (the TFS cloud version) because it has Git support which would (we hoped) help us manage both our VisualStudio and MonoDevelop code in one place.

The question is how to connect to the TFS service in MonoDevelop? From what I can see, I should use HTTPS protocol, for server I just type the name of our TFS service, and for user I type in my live id user@live.com and try to connect.

The problem is the url which becomes something like this

https://user@live.com@projectname.visualstudio.com/

Note the two @ signs in the url. Seems that whatever git Tools are used behind MonoDevelop barfs on that:

NGit.Api.Errors.JGitInternalException: Exception caught during execution of fetch command ---> NGit.Errors.NotSupportedException: Invalid URL

If I try to omit the user name from the dialog, I get another error about unauthorized access.

Is there a way to enter/store git username and password somewhere on the mac or in MonoDevelop? I'm pretty sure this would work eventually.


Solution

  • Team Foundation Service (tfs.visualstudio.com, formerly tfspreview.com) does not host git repositories, only Team Foundation Server repositories.

    It sounds like you may be conflating two different concepts:

    • Codeplex, Microsoft's hosting site for open source software, does support both TFS and git hosting, as well as Mercurial.

    • Microsoft recently announced the git-tf project that allows you to create a local git repository that tracks a remote Team Foundation Server repository.

    git-tf was designed with cross-platform users in mind, who use an IDE that does not have native support for Team Foundation Server source code control. It sounds like using git-tf would probably be the most applicable for you.