CrossWorks supports team development of applications using source code control. At present CrossWorks integrates with Microsoft Visual SourceSafe (VSS) but we intend to support other systems in future releases. The source code control integration capability provides:

- Connecting to the SC database (sometimes called a repository).
- Mapping files in the project system to those in the source code control system
- Showing the source control status of files and projects
- Adding and removing files and projects from source control
- Typical source control operations such as Add to source control, Remove from source control, and so on.

## Connecting to the source control system

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 source control system. Note that the login information is held in the session file of the project so you will need to log in 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 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.

## Source control 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

## Source control status

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, the source control properties appear in the properties window—these properties reflect the local checkout status of the file and whether or not it has been modified.

## Source control 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.