Why doesn't TFS get latest get the latest?

Why Why WHY doesn't TFS's get latest work consistently?

You would have thought that feature would have been tested thoroughly.

What I have to do is, get specific version, then check both overwrite writetable files + overwrite all files.

Is my local setup messed up or you do this also?


Solution 1:

TFS redefined what "Get Latest" does. In TFS terms, Get Latest means get the latest version of the files, but ignore the ones that the server thinks is already in your workspace. Which to me and just about everyone else on the planet is wrong.

See this link: http://blogs.microsoft.co.il/blogs/srlteam/archive/2009/04/13/how-get-latest-version-really-works.aspx

The only way to get it to do what you want is to Get Specific Version, then check both of the "Overwrite ..." boxes.

Solution 2:

Sometimes Get specific version even checking both checkboxes won't get you the latest file. You've probably made a change to a file, and want to undo those changes by re-getting the latest version. Well... that's what Undo pending changes is for and not the purpose of Get specific version.

If in doubt:

  • undo pending check in on the file(s)
  • do a compare afterwards to make sure your file matches the expected version
  • run a recursive 'compare' on your whole project afterwards to see what else is different
  • keep an eye on pending changes window and sometimes you may need to check 'take server version' to resolve an incompatible pending change

And this one's my favorite that I just discovered :

  • keep an eye out in the the Output window for messages such as this :

    Warning - Unable to refresh R:\TFS-PROJECTS\www.example.com\ExampleMVC\Example MVC\Example MVC.csproj because you have a pending edit.

This critical message appears in the output window. No other notifications! Nothing in pending changes and no other dialog message telling you that the file you just requested explicitly was not retrieved! And yes - you resolve this by just running Undo pending changes and getting the file.