Msscci 1.2 arrived

As Brian writes in his blog we released new version of TFS Msscci Provider. Nice improvements are fixes in the property (displaying local path) and checkin (saving the work items query list between the calls) dialog. We have also changed the provider in order to support Toad.

However the biggest change is supporting branched solutions in VS2003. Basically it means that now, after the solution was branched on the server, VS2003 should perform "Open from SCC" with no problems (in the previous versions it would still reference the original branch and mess with your workspace mappings). There are a few gotchas when playing with the branched solutions:

  • As Brian writes, you need to do "Open from SCC" in order to get solution into your local workspace, you cannot download the files manually (using tf.exe or SCE) and open it directly from the disk. However this is the same behavior as SourceSafe and other msscci providers, so I hope it will not be confusing for the users.
  • As we write in the readme (which I'm sure everybody reads before using the provider :) solutions which were bound to source control using old TFS Msscci Provider will need to be rebound.
  • Opening from source control multi-rooted solutions can be challenging. Web projects are always referencing the original branch and unfortunately we don't see a way to change this. To fix it, you need to perform the following steps:
    • Check out the branched sln file (using Team Explorer or command line) before you do Open from SCC in VS2003
    • Manually fix SccPorjectName field which references the main branch
    • Check in the file
  • Opening multi-rooted a solution which has normal projects (not web projects) outside of the solution root will change the workspace mapping because VS2003 will create common root and the structure on the disk will not be the same as structure on the server. You can fix the workspace mappings manually after the "Open from SCC".

 I hope that these scenarios are rare enough that it will not bother you often :).

 Update 03/28/2008

One more scenario when project can still reference the original branch, is when somebody (or something) adds to source control the "mssccprj.scc" files. Those files are created during "Open from Scc" and they contain binding information. They should be local only, so every time user creates new project, downloading in from different branch, the mssccprj.scc will contain correct server path. If you already checked in those files, please delete them from SCC in all branches (by pending delete and then checking in the change), sync the workspaces, and perform "Open from Scc" operation again to recreate mssccprj.scc files on the disk.