Surround SCM supports integration with Visual Studio. See Surround SCM Third-Party Integrations for supported versions.
This article includes information about the available integration plug-ins, installing the plug-in, selecting the plug-in, adding a solution to Surround SCM, performing Surround SCM actions, setting source control options, license usage, and troubleshooting.
About the plug-ins
Surround SCM provides two integration plug-ins for Visual Studio:
- The Surround SCM Integration Provider plug-in is built using the Visual Studio Integration Extension (VSIX) API, which allows Visual Studio to access most Surround SCM functionality. If this plug-in is used, a Surround SCM menu is added to the Visual Studio menu bar. This plug-in is supported in Visual Studio 2005 and later.
- The Surround SCM plug-in is built using the Microsoft Source Code Control Interface (MSSCCI) API, which allows Visual Studio to access a basic, limited set of Surround SCM functionality. This plug-in is supported for all supported Visual Studio versions and is the only option for Visual Studio 2003. You may also need to use this plug-in if other team members are using it or if your team uses Visual Studio integrations with other source control providers.
The following information explains how to use the Surround SCM Integration Provider, which is the recommended plug-in. See Visual Studio Integration – Alternative Plug-In Option for information about using the Surround SCM plug-in.
Tip: To access more Surround SCM actions in projects that use the Surround SCM plug-in, you can switch to the Surround SCM Integration Provider plug-in. See Changing the Plug-in Used with Projects.
Installing the integration package
The Surround SCM Integration Provider plug-in is installed during the Surround SCM installation. If you did not install it, rerun the Surround SCM installer and select the Visual Studio integration option.
Note: Additional steps are required to install the Visual Studio 2017 or 2015 integration package for earlier Surround SCM versions. See Visual Studio 2017 Integration Does Not Work with Surround SCM 2016.1 and Earlier and Visual Studio 2015 Integration Does Not Work with Surround SCM 2015.0 and Earlier.
Selecting the plug-in
In Visual Studio, choose Tools > Options. Select Plug-in Selection in the Source Control category and then select Surround SCM Integration Provider as the current source control plug-in.
Adding a solution to Surround SCM
Before you can access Surround SCM actions, you need to add the solution and project to Surround SCM. When you put a solution under source control, you are prompted to automatically add all projects and files. When you create a new solution, it is immediately added to source control.
- Open the Visual Studio solution and choose File > Surround SCM > Add Solution to Surround SCM. The Surround SCM Repository Browser opens.
- To associate the solution with an existing repository, select the repository and change the working directory to use the directory where the solution file is stored.
- To create a new repository, select the branch and repository to use as the parent of the new repository and click Create Repository. The solution file is stored in the new repository.
- Click OK to close the repository browser. Surround SCM creates a repository for each directory under the solution. The repository structure is the same as the project structure.
Note: Repositories for bin and obj directories are not created in Surround SCM because these files do not need to be under source control.
Performing Surround SCM actions
To perform a Surround SCM action, select it from the Surround SCM menu. You can also right-click a file and choose an action or choose File > Surround SCM and then select an action.
|| Use to:
||Manually select files to retrieve local copies of to the working directory.
|Get Latest Version
||Automatically retrieve the latest version of files selected in the Solution Explorer to the working directory.
||Check out the selected files to make changes to them.
||Check in updated files and make changes available to other users.
|Undo Check Out
||Discard any changes made to a checked out file and remove the lock.
||Add files from the current solution to a Surround SCM label.
||View the file history.
||Update the current status of files. For example, if you check out a file from the Surround SCM Client, it is not displayed as checked out in Visual Studio until you refresh the file status.
||Compare the local copy of a file in your working directory with the current version in Surround SCM.
||Merge files in a solution and then check in the merge result to Surround SCM.
||Set a workflow state on a file. The available states depend on the current file state and the workflow used in the repository associated with the file.
|Surround SCM Properties
||View the file properties.
||View pending changelists. You may also be able to view your committed changelists. To view pending changes as you work, choose View > Other Windows > Surround SCM Pending Changelists.
|Open from Surround SCM
||Open a Visual Studio project from Surround SCM.
|Add Project from Source Control
||Add a project from Surround SCM to an existing solution.
||Modify the association between a project or solution and the corresponding Surround SCM branch and repository.
|Launch Surround SCM Client
||Open Surround SCM.
Setting source control options
You can configure source control options, such as the default check in options. Refer to the Visual Studio documentation for information.
- Choose Tools > Options.
- Expand Source Control and then select Environment Settings.
- Select any options.
- Select the Plug-in Settings category and set any options.
- Click OK to save the changes.
A Surround SCM license is used when Visual Studio needs information about a file from Surround SCM. By default, Visual Studio is set to automatically perform background status checks with source control providers. If you use floating licenses and are not performing Surround SCM actions, you can disconnect the project from Surround SCM to keep licenses available to other users. Floating licenses are automatically released after 15 minutes of inactivity.
An error occurred registering the project with source control in Visual Studio
Integration with some Visual Studio versions does not work with earlier Surround SCM versions because the Surround SCM installer does not include the required VSIX integration package. You must manually install the Visual Studio Integration Extension to integrate these product versions.
Surround SCM is not listed as an available source control provider
The Surround SCM plug-in may not be installed. Run the Surround SCM installer to install the plug-in.
Integration does not work after installing or upgrading Visual Studio
Installing or upgrading Visual Studio after installing Surround SCM deletes the registry settings required for the integration to work. Reinstall Surround SCM to update the registry. Make sure to select the Visual Studio integration option.
Surround SCM files are not displayed correctly in Visual Studio
You added files to Surround SCM, but Surround SCM menu items are not enabled when viewing files in Visual Studio.
- The Visual Studio project may be configured incorrectly. Make sure the project points to a Surround SCM branch/repository on the Surround SCM Server you are connecting to. To check the information, open the project and solution files in a text editor and check the SCCProjectName value. The format is branch:repository. You can also use the Change Source Control command to check the information in Visual Studio.
- The branch/repository may point to an invalid working directory. Make sure the working directory for the repository associated with the project points to the same local directory as the project. You may experience problems if you point the working directory to a different location.
- The local .MySCMServerInfo file may be out of sync and Visual Studio cannot determine where Surround SCM files are located. In the directory where the Surround SCM files are located, open the .MySCMServerInfo file in a text editor. Make sure the correct branch/repository is listed. If not, delete the file and refresh the project from Visual Studio to regenerate it with the correct data.
- The files may be above the solution in the local directory tree. Visual Studio does not support integration with files that are not in or below the solution’s local directory tree. If the files are above the solution in the tree, create a new solution file at the top level of the source tree and then add the projects to the new solution.
Cannot add files to Surround SCM from Visual Studio
Make sure you check the Visual Studio Output window for errors when you add files. Following are common causes and solutions.
- The Visual Studio project may be configured incorrectly. Make sure the project points to a Surround SCM branch/repository on the Surround SCM Server you are connecting to. To check the information, open the project and solution files in a text editor and check the SCCProjectName value. The format is branch:repository.
- The Visual Studio project may point to the wrong Surround SCM branch. This may occur if you maintain the Visual Studio project and solution files in Surround SCM and then branch the repository that contains the files. After the branch is created, the local .MySCMServerInfo file still points to the old branch, which is where the files are added. Configure Visual Studio to point to the correct branch and then add the files to Surround SCM. Open the project and solution files in Notepad and change the SCCProjectName value to point to the correct branch. Finally, add the files to Surround SCM.
Initialization or package load fails when selecting a Surround SCM plug-in
One or both of the following errors is returned when selecting the Surround SCM source control plug-in in Visual Studio 2005:
- 'There was a failure when initializing the Surround SCM source control provider. You cannot use this provider to perform source control operations.'
- 'Package Load Failure'
The Surround SCM installer may not add the Surround SCM installation directory path to your computer’s PATH system variable if the resulting variable is more than 1024 characters. Manually add the installation directory path to the PATH system variable and then reattempt to set Surround SCM as the source control provider.
Project folder and file names with Unicode characters are not added to Surround SCM
The Visual Studio SCC interface retrieves the value of each character in a file or folder name based on the system locale defined for the computer. If the locale does not match the character set used in Visual Studio, Unicode characters are not decoded and unsupported questions mark characters (?) are sent to the Surround SCM SCCI DLL instead.
To support the character set used in Visual Studio, change the language used for non-Unicode programs in the system locale. See the operating system help for information