"Workspace version" is the version of an item as it exists in your workspace. It only makes sense if the item has been "get'd" into your workspace, otherwise we won't be able to resolve what "workspace version" means for that item.
Being able to specify workspace version lets you specify a point in time (specifically the version of the item you have in your workspace) without having to be more specific about it. For instance, if I have foo.cs in my workspace at changeset 6, but it was also edited at changesets 5 and 7 (and 7 is currently the latest changeset), I can see the diffs between my "workspace version" and latest with "tf diff foo.cs /version:W~T" (W meaning workspace version, T meaning tip).
By default workspace version means "the version of the item in the current workspace", but you can also specify a different workspace. This can be useful if, for instance, you want to sync some subdirectory to the same versions as some other user, or some other workspace of yours.
I'll also rip of part of Adam's blog post about version specs here:
Lastly, there are workspace versions. At first glance, this may seem somewhat silly. Workspace version indicates the version last gotten in a particular workspace. Hence, if you simply say ??f get * /r /version:W?? you??e telling the server to download the last version you downloaded. This should never do anything, though you can add the "/force" flag to redownload. However, you can append a different workspace here, such as "tf get */r /version:WMyOtherWorkspace" to get the same version in the current workspace as you have in another of your workspaces. Suppose that a coworker has found a bug and you want to reproduce it under a debugger. You can run ??f get * /r /version:WTheirWorkspace;DOMAIN\Coworker??to get the last version of the code which they downloaded. This is also handy for buddy testing before you unshelve someone else?? changes if you want to have the same setup that they have.
Team Foundation Server - http://blogs.msdn.com/jmanning/ |