Friday, August 18, 2006

Shared workspace mappings

For everyone that has used TFS source control it is well known fact that it is impossible to create more than one workspace mapping to same directory (in single or different workspace on same workstation). When you try to do that, TFS error message pops up informing you that the path is already mapped somewhere.

For non-shared computer there is no probem in the situation; you just use the workspace with mapping or create a new path.

Now, on workstations used by several people (for example, integration stations) there may be lot of value in the "shared" workspace, namely so that each user after logging in has mapping in his workspace to the same path. Until today, I did not think that possible, but came across very interesting post in MSDN newsgroup that suggests a solution.

The solution is simple and elegant! You just map disk drive to the directory, and while users Alice and Bob have mappings in their workspaces to G:\ProjectA and F:\ProjectA, they in fact will be working with same project in c:\src\ProjectA. One might note that it is not single shared workspace but instead workspace per user with the same mapping, but heck - that's the best solution we have! Surely beats having separate directory for each user just for mapping.

Kudos to Nate for suggesting the solution.


Jerry Nixon said...

Simple, yes; elegant, no. When your projects are on a network drive you have a whole new set of security concerns that make many scenarios simply stop working. Workspaces on a network drive would not be my preference.

eugenez said...

Generally speaking, you are right; but when talking about "elegance" I had in mind other alternatives available as of now, not compared to some future shared workspace in TFS v2.

Anonymous said...

Symbolic links is a good idea, in simple case, but if you have inter-references from one project to another, and path to assemblies inside is indicated as ../../blablabla you can easily end up in psycho clinic when trying to prepare TFS build project...

So i am giving up and our team is going to unify our 2 projects into 1 team project.