5
votes

I need to know whether TFS 2015 Proxy Server really support Git, not just TFVC. Unfortunately I've tried to find documentations and articles about this and there's no mention at all about this issue. Even in MSDN Library, there's no documentation available for setting up TFS 2015.

All I know in MSDN Library that there's documentation for setting up TFS 2013: https://msdn.microsoft.com/en-us/library/ee248710(v=vs.120).aspx

Again, there's no mention of Git support in TFS 2015 Proxy Server. If there's support for Git, TFS 2015 Proxy Server should have at least these features:

  • should be able to create local repo as proxy cache instead of always fetching from remote repo
  • periodically check and sync with remote repo
  • served commits (including pushes) that's not part of pull request to remote master branch should be merged first to the cache and then pushed to the remote server. This should trigger initiate fetch first and then synchronize back and forth

I also have tried searching at Visual Studio uservoice, and it's not available as well.

2

2 Answers

8
votes

Short answer: no.

TFS Proxy is designed for TFVC and minimize the number of files (and bytes) downloaded. Git uses a complete different protocol to exchange data between client and the server (see Smart protocol in Git documentation).

1
votes

Why? Did you experienced a really need for it? Or is it just because you use it with TFVC that you think you need it?

Because, as a DVCS, most of the actions are done localy without contacting the server (contrary to TFVC where a lot of actions - check out, add a file, make a difference, view history,... - are all made with the server!)

With git, only 2 actions are made with the server, fetching the commits of others and pushing yours and they are made much more efficiently than with TFVC! Data is bundled and compressed contrary to TFVC where everything is sent inefficiently in clear, file by file.

Git has been made to be fast and network efficient!

So, I only see 2 possibilities... Either, you don't really need it, or you are committing big binary files that are hard to compress. In this last case, you should either prevent to commit them (better!) or use git-lfs, a feature provided by TFS.