משיב מוביל

TFS proxy configuration

שאלה

Recently we are setting up a TFS proxy, and I have some questions about this, appreciate it if anyone can answer them.

1. Can I directly connect to TFS proxy by VS? such as http://tfs-proxy:8081 or something, I don't know if this is a feature of TFS proxy and do I missed some configuration, for I can't do this now, even web access to it returned a 403 error.

2. Is TFS proxy just a copy of version control, can I check in my code into proxy? If the answer is no, and I have a slow link between TFS and proxy, will this process be very slow if I want to check in a very large file for I can just check in to TFS?

3. When I connect to TFS, must I configure project permission on it? If I don't set one project permission to somebody on TFS, but set it on the proxy, can this guy check in to this project?

תשובות

1. The TFS Proxy Server is a cache server. It keeps copies of code that you have retrieved to your workstation or checked in as long as you have set it in Visual Studio (Tools->Options->Source Control->Visual Studio Team Foundation). It doesn't
stop you from going to the TFS Server, it just helps by preventing you needing to go to the server if it has a copy of the code you need.

2. Your checked in code still goes to the TFS Server so there is a copy on the TFS Proxy Server and in the TFS Server. The slow link between the TFS Proxy Server and the TFS Server will still have a slow check-in time.

3. The TFS Proxy Server communicates with the TFS Server so authentication is still being done against TFS. You can't give someone permission for the TFS Proxy Server alone. It is still handled by the TFS Server.

I believe it will be in the TFS Server first since you wouldn't want the Proxy Server to have something that is not in source control. Here's a detailed
post on 2008 that should still be applicable. This
post gives the indication that the file will only be in the cache when someone does a request for it. If you are checking in a new file then I don't think it will be put into the cache until someone requests it.

If your clients installed with TFS Server in the same place, you needn’t to install TFS Proxy. For the remote clients, you can configure the TFS Proxy, then that remote clients connect to that TFS Proxy.

כל התגובות

1. The TFS Proxy Server is a cache server. It keeps copies of code that you have retrieved to your workstation or checked in as long as you have set it in Visual Studio (Tools->Options->Source Control->Visual Studio Team Foundation). It doesn't
stop you from going to the TFS Server, it just helps by preventing you needing to go to the server if it has a copy of the code you need.

2. Your checked in code still goes to the TFS Server so there is a copy on the TFS Proxy Server and in the TFS Server. The slow link between the TFS Proxy Server and the TFS Server will still have a slow check-in time.

3. The TFS Proxy Server communicates with the TFS Server so authentication is still being done against TFS. You can't give someone permission for the TFS Proxy Server alone. It is still handled by the TFS Server.

Do you mean if I check in to the TFS server when I have configured proxy in Visual Studio, the checked in code will go to the proxy server first and sync between the TFS server and proxy server after that? Or go to the TFS server first and then sync these
codes to proxy server?

I believe it will be in the TFS Server first since you wouldn't want the Proxy Server to have something that is not in source control. Here's a detailed
post on 2008 that should still be applicable. This
post gives the indication that the file will only be in the cache when someone does a request for it. If you are checking in a new file then I don't think it will be put into the cache until someone requests it.

So it seems proxy cannot achieve this goal: One team in place A check in, check out and build code in place A's TFS server, one team in place B check in, check out and build code in place B's TFS server, and both the two places' version controls share the
same code, am I right?

Recently a person proposed we can meet our goal by setting up TFS application tier only server to be able to check in code in our team instead of the remote server, is it right?

If your clients installed with TFS Server in the same place, you needn’t to install TFS Proxy. For the remote clients, you can configure the TFS Proxy, then that remote clients connect to that TFS Proxy.