Everybody remember the introduction of the local workspaces in 2012, enabling offline scenarios with Team Foundation Server. But did you know they have a limit on the number of files prior to performance degradation?
This limit is 100000 elements.
TF401190: The local workspace temp_WS;User has 248536 items in it,
which exceeds the recommended limit of 100000 items. To improve
performance, either reduce the number of items in the workspace,
or convert the workspace to a server workspace.
There it is. It’s not a bug, but it is a design choice by the Team Foundation Server team.
Local workspaces work leveraging the content of the hidden $tf folder, which tracks all the changes for a file (deltas) from check-out to check-in. That’s how you get features like Candidate Changes. The side effect is that despite the source copy is compressed, it is still a copy, hence you have a physically bigger workspace.
The workarounds in this case is to use a server workspace (easy) or to split the huge, monolithic workspace into several smaller workspace so you won’t hit the issue. This could be harder than just using a server workspace, but with a bit of planning it is absolutely feasible.
This post by Philip Kelley is extremely enlightening, as it is a deep comparison between local and server workspaces. Right there he explains the differences, and how they are implemented (the PendChange permission, the +R bit, etc.).
Good post!
ReplyDeleteYou can say that again!
ReplyDeleteYou can say that again!
ReplyDeletehow about making TFS work better instead of giving us another useless message
ReplyDeleteYep exactly. They really should have implemented local workspaces in a manner that is scalable rather than useless for large projects.
DeleteI totally agree I see the message every day. I don't notice any performance issues. But I do notice the subtle annoyance of seeing the message every time I open visual studio.
DeleteExactly, during my history with SVN I had never performance problems or hit any limit. My bad TFS is sqeezed by my current development?
ReplyDeleteSource Safe was so simple....never had such issues ... now with TFS sometimes I have to get a few times "the latest" b/c it doesn't get it... if that doesn't work I have to get a special version, and check two buttons....now they came up with work-spaces (include/exclude) and the list goes on....
ReplyDeleteNew kids who join us think we are dinosaurs for not understanding this, they never worked with SS simplicity and reliability!
The only thing TFS does better is auto-merging.... thats it!
The issue in this post is more about TFS-VC. TFS itself does not impose this limit. Using TFS-Git has no issue with this for exmaple.
DeleteTFS-VC is simply bad design, Git is miles better.