CrossWorks has a source control (SC) integration capability. Currently this supports Microsoft Visual SourceSafe (VSS) but other systems will be supported in future releases. The SC integration capability provides the following functionality

- connecting to the SC database (sometimes called a repository).
- mapping files in the project system to those in the SC.
- showing the SC status of the solution.
- typical SC operations - add, remove etc.

##### Connect to the SC system.

By selecting Project | Source Control | Connect... will produce a login dialog that enables you specify which SC database to connect to. This will be remembered by CrossWorks so the next time you start CrossWorks you will be automatically logged in to the SC system. Note that the login information is held in the session file of the project - so you'll have to login for each different project you have.

For the VSS integration the login dialog displays the set of databases that the VSS explorer maintains together with a username and a password entry box.

##### Mapping files in the project system to those in the SC system.

In order to map local files to those in the SC system the project property SC Directory is used. This property can be applied to solution, project, folder and file nodes in the project hierarchy. When an SC operation is performed the appropriate value of this property is prepended to the relative name of the file.

If for example you want to put a project into the VSS project $/allprojects/subproject1 then you should set the SC Directory property to be this value. If your local project file hierarchy starts at c:/subproject1 then you shouldn't need to specify any other values for the SC Directory.

##### SC properties

When a file is under SC control the project properties display the following information

- The file path of the file in SC control.
- If the file is checked out by you to the project location.
- If the file is different in the project location to the SC system.
- If the file in the project location is an old version compared to the latest version in the SC system.

##### Showing the SC Status of the project.

By selecting Project | Source Control | Status... a dialog is displayed that show the current SC state of each file in the project. If a local file has been changed then this file is displayed in red. You can use this dialog to do multiple SC operations e.g. add several files to the SC. You can restrict the file list to a node in the project hierarchy e.g. all files of a folder, and supply a filter which enables the file list to be restricted to the SC status e.g. all files that are different.

When a given file or solution is selected in the project explorer then the source control properties are shown in the properties window - these will tell you the local checkout status of the file and whether or not it has been modified.

##### SC operations

The usual SC operations of add, remove, get latest, checkout, checkin, undo checkout and show differences are available from the context menu of the project explorer, the main project menu and also from the editor context menu.