Those of us who are using Team Foundation Server 2005 know that a file is
not updated on your local workspace when you check it out. The idea under this behavior
is good - developer should manually pick files to update. I'm lazy to write
why, here is quote describing that.
As a developer, this is the preferred behavior
because there is often a domino effect where getting the latest of one file
requires getting other files that have dependent changes. For example,
suppose you check out 2 files to fix a bug only to find out half a day later
that you need to modify a third file to fix the bug. Since the time you
checked out your first two files, someone else has checked in a change to the
3rd file that requires you to get 5 more files. If checkout gets the
latest files, you will also need to get the 5 additional files plus whatever
new dependencies that have been added to those files.
Despite all goodness of this feature, it was not met well by developers for the
- Most of us migrated to TFS from Visual Source
Safe. And it has different behavior; the file is automatically updated when it
is checked out.
- If you practice Lock-Modify-Unlock model it
becomes straightforward that local file should be updated locally. Because you
will lose someone changes otherwise.
- Warning message telling that newer version presents on server
is too easy to miss. It is displayed on Output panel, but not
everyone have it open. I think that such an important warning message must be displayed in a way it attracts
user's attention for sure.
- Habit to check-out a file by simply starting to
edit so strong… It is hard to remember that you should always get latest
version before editing a file. Also, Lock-Modify-Unlock is default model for
It was frustrating that there is no built-in way to force TFS to get latest
version on checkout. 3rd party solutions appeared to help abandoned users like
me. Here is one
from SLR team (Thank you guys!).
Now VS 2008 and TFS 2008 are out and there is built-in ”Get Latest Version
on Checkout” feature.
NOTE: When writing this post I found that this option does not work when you
have VS 2008 and TFS 2005. I think, a way too many people will
be confused by this as TFS will be upgraded not as fast as VS.