An interesting case came in the other day where the customer had a TF server on one continent and developers on another. Seems that if the devs were out of office for a week or so, upon reconnect to TFS they download the entire cache (C:\Users\<DEV>\AppData\Local\Microsoft\Team Foundation\2.0), including all metadata. In their case it was a rather large download, and because they were “testing” TFS, they were performing a fair amount of customization to work items (adding and deleting fields, etc.), creating a bunch of Team Projects, etc. The question was posed – what triggers a full download of the TFS metadata and is it configurable.
The answer was this: If a user deletes a field, deletes a work item type, or runs a repair on the TFS instance, all users must download a fresh copy of the metadata. In TFS2008 SP1, we also added a small feature that destroys logically deleted metadata on a weekly basis (if there is more logically deleted data than active data). This will also trigger a full refresh. None of these triggers can be overridden.
As an alternative you may want to enable metadata filtering to reduce the metadata size. Here’s a blog post explaining what/how: http://www.woodwardweb.com/vsts/filtering_wit_c.html. NOTE: because the filtering feature is a breaking change to web applications that share metadata between users, it is off by default. Also note that this is only available in TFS 2008 *SP1*. It is not available in any earlier version of TFS.
So our takeaways here are:
1. Full metadata download from TFS is triggered by WIT field deletion, deletion of a work item type, or a running a repair of TFS. As of TFS 2008, it is also triggered after the weekly destruction of logically deleted metadata.
2. You cannot disable the full metadata download, but…
3. You can reduce the amount of metadata that is downloaded from TFS using metadata filtering.
Hope this helps!
PS: One final note… as TFS 2010 stands now, the client will only refresh in response to servicing or the destruction job that destroys logically deleted metadata on a weekly basis. And special thanks to Sam Heald from the TFS product group for his help on this post.