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 database the project file is taken to be the root of the project hierarchy. The first time CrossWorks tries to check the SC status of the project file it will prompt you to specify the location of this file in the SC database. This mapping will be stored in the session file so you won't have to keep specifying the mapping. If you cancel at the prompt to specify the location of a project file in the SC database use Project | Source Control | Add To Source Control to make CrossWorks prompt again.

If a project directory is defined for a project file then this will be prepended to the filename in the project when mapping to files in the SC system. Note that only relative project directories (and filenames) are supported.

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