TFS, Force Get, and Get Specific Version
So - you've all come across this, right?
Great - all the files in my workspace (workspaces - now there's another dumb idea, but I'll leave that for another day) are up to date.
Except they're not, because I just deleted them.
An important thing to realise about Team Foundation Server is that it keeps a lot of state about your checkout server-side. This is in marked contrast to something like Subversion, where the server has no awareness of what the client is up to*, or to Mercurial, Git et al. where you don't even need a server at all.
This message actually translates to:
"The server doesn't think you need to get any updated files because nothing that you downloaded last time has changed."
The clue is in the final sentence in the dialog - you have to use the "yes, I really mean it" option to get the latest versions of your files.
What does this mean in practice? It means that everyone does force get anyway, all the time. Any performance benefit that might have been realised from having an 'intelligent' source-code-getter are lost, and we're left with more UI cruft.
Like most things with TFS, this isn't a showstopper, merely slightly annoying. But when you spend the whole day with a thousand 'slightly annoying' things, they all add up to 'very annoying'.
I hear that TFS 2008 is meant to be better. That's good - TFS 2005 is clearly half-baked. At least it hasn't actually eaten any source code yet, so I'd rather use it than Visual Source Safe (or possibly even CVS).
Rant over.
*That's a slight generalisation as you can optionally lock files. But the general case is that you can do what you like client-side.
I've disabled comments for now due to spam problems - I'll turn them back on when I've fixed it!