MSSCCI Registry Structure
MSSCCI uses registry to organize multiple SCC providers.
There are 3 elements in the registry:
1. The provider specific registry entries
For every SCC provider, there is a registry entry: HKEY_LOCAL_MACHINE\SOFTWARE\[company name]\[product name].
For Microsoft SourceSafe, that is HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SourceSafe.
Under that entry, there are 4 sub entries: SCCServerName, SCCServerPath, HideInVisualStudio and DisableSccManager. SCCServerName is the name of the product. SCCServerPath is the full path to the SCC dll. HideInVisualStudio and DisableSccManager are not so commonly used.
The following is the screen shot of the SourceSafe/VSS MSSCCI registry:
(SourceSafe/VSS MSSCCI registry)
Other MSSCCI provider has similar values. The following is the screen shot of the SourceAnywhere MSSCCI registry:
(SourceAnywhere MSSCCI registry)
2. The central place to list all the providers
All of the SCC providers are listed under the HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders entry. Under the InstalledSCCProviders entry, there are list of [display name] = [the path to the provider specific registry entry]. The following is the screen shot:
(The installed SCC providers in the system)
3. The entry to specify the current provider
Finally, there must be an entry to specify which provider is the current provider in the system. The pattern is HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey = [the path to the provider specific registry entry].
The following is the screen shot of my machine that specifies that SourceSafe is the current provider:
How to Edit/View the Registry
We can use regedit.exe to edit or view the registry.
Improvement in Visual Studio 2005 and 2008
From the above, we know that there is only one HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey entry, which means that we can only have one default SCC provider in the system. If we have two projects that use two different MSSCCI providers, we have to switch the current provider when we open a different project.
Since Visual Studio 2005, Microsoft made improvement by writing the SCC provider info in the solution file. This way, the SCC provider information is solution specific. Different solutions can use different source control providers without switching provider info in the registry.
For how to choose the SCC provider in Visual Studio 2005 and 2008, please refer to the article Switching Visual Studio projects from SourceSafe to other SCC providers. The url is:
|The SQL Server-based Source Control Software Designed to be a SourceSafe Replacement||The Fastest SourceSafe Remote Access Tool Recommeded by Microsoft|
Previous article <<<<: Introduction to Microsoft Source Code Control Interface (MSSCCI)
Next article >>>>: A Free Tool to Manage the MSSCCI Provider (with full Source Code)
SourceSafe How To series home page: VSS / SourceSafe Tutorial