Where does VS2005 store source control provider info?

In VS 2003 and previous versions, the list of source control providers and the default SCC provider were stored in HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider.

It looks like Whidbey does not use these values.  I'm trying to make sure that our SCC tool will appear in the Whidbey list, and also have the capability for the user to set the default VS SCC provider from our app.  How do I do that in VS 2005



Answer this question

Where does VS2005 store source control provider info?

  • richhudec

    Hmmm.  Is there a cache or something that causes VS 2005 to not update when the registry is changed, even after re-invoking the IDE

    I'm working on integration of SourceGear Vault with VS 2005.  When I installed the Feb preview of VS 2005, it correctly picked up Vault as the default source control provider.  However, adding other SCC providers to the registry or removing Vault as the default from the registry seems to have no effect on VS 2005.  It still chooses Vault as the SCC provider, and other entries that I manually add in HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders do not show up in VS 2005 as choices.

    I'm using:
    HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey

    As the way to determine default SCC provider.


  • tomwindcloud


    VS 2005 continues to use that key to determine which MSSCCI provider is the default.

    In order to appear on the list under Tools|Options|SourceControl, You need to also list your tool under the key:
    HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders

    -Alfredo


  • James Woodall

    Sorry to be such a pest - i think we are close, but not quite there.

    The value in HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\CurrentSourceControlProvider is the one I am looking for, in that it does indeed control what the default is in VS 2005.

    However, the value there looks to be some computed key of some kind.  How do I set Vault to be the default programmatically if there is an existing SCC tool there   In our install package we allow the user to choose Vault as the default SCC tool (which we used to do by modifying HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey), so I'd need some way to do that to continue that feature.

    Thanks,
    Dan

  • chmur

    Hi Dan,

    VS2005 provide a mechanism for source control provider switching via Tools/Options/SourceControl/Plug-In.

    If your provider is correctly installed as a MSSCCI provider (registered under HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders with a good name and provider-specific registry key, and has a valid SCCServerPath and SCCServerName specified in the provider-specific registry key), then it should be listed as an option in the drop-down in Scc/Plug-in page. If you believe your provider is correctly registered but VS2005 doesn't list it, please let us know which keys/values you manually added in registry.

    As for the 'active' source control provider, VS2005 saves it per-user, under HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\CurrentSourceControlProvider. The value under HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey is used as default when the per-user setting does not exist.

    Thanks,
    Alin

  • PeterNL

    Oh, I see now what you were looking for, to set Vault as active provider when you install it.

    I think there are a couple of ways to do that:
    1) Delete the HKCU\Software\Microsoft\VisualStudio\8.0\CurrentSourceControlProvider key, and set HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey.
    Next time VisualStudio will open it will read the default source control provider from the old key.
    This may not work on a VisualStudio TeamSystem SKU; currently, in VSTS SKUs the default VSIP source control provider is set to Hatteras and not to the MSSCCI Host pacakge.

    2) Set the values under HKCU\Software\Microsoft\VisualStudio\8.0\CurrentSourceControlProvider, something like this
    (Default)={53544C4D-FFD5-48A9-B04A-0700CCD31070}
    ProviderRegKey=Software\Microsoft\SourceSafe

    The first value sets active the 'Microsoft MSSCCI Support Provider' VSIP source control package (also called MSSCCI Host, vssprovider.dll). There is also a matching (Default) value under HKLM\SOFTWARE\Microsoft\VisualStudio\8.0\SourceControlProviders. The installed VSIP scc providers are enumerated under that registry key; I doubt that MSSCCI Host guid will change until Whidbey ships.
    The second value sets the active MSSCCI provider to be used by the MSSCCI Host package, in my example it's SourceSafe.

    Also, note that VisualStudio 8.0 has an automatic-provider switching feature.
    After you set Vault to be the default provider, if an user will open a SourceSafe-controlled solution for instance, the active provider will be automatically switched to SourceSafe (or to Vault, if after that you open a Vault-controlled solution).

  • Where does VS2005 store source control provider info?