# <sscmcheckin>

Checks in files in Surround SCM repository.

Check in updated Surround SCM files with changes, removes the lock on the files, and makes changes available to other users.

### Parameters

Attribute | Type | Description | Required
--- | --- | --- | ---
branch | string | Surround SCM branch name. The default is pulled from the local working directory. | False
comment | string | Comment for the check-in. | False
deletelocal | bool | Remove local file after check in. The default is false. | False
file | string | File or repository name. Can be / or empty, which means the repository specified by the repository option or the default repository. | False
forceupdate | bool | Update version even if no changes. The default is false. | False
getlocal | bool | Get file after check in. The default is true. | False
keeplocked | bool | Keep the lock after check in. The default is false. | False
label | string | A label for the check in code. | False
overwritelabel | bool | Overwrite previous label on file. The default is false. | False
quiet | bool | Do not list repository and local full path of the Surround SCM server. The default is false. | False
recursive | bool | Recursively check in all files and sub-repositories. The default is false. | False
repository | string | Surround SCM repository path. The default is pulled from the local working directory. | False
skipautomerge | bool | Force check in without merge. Ignores code changes checked in after the user's last checkout or merge. The default is false. | False
ttpdatabase | string | The TestTrack Pro database configuration name. | False
ttpdefects | string | The TestTrack Pro defect number(s) for attachment. Format is "#:#:#:#". | False
ttplogin | string | The TestTrack Pro username and password. | False
writable | bool | Make file writable after check in. The default is false. | False
failonerror | bool | Determines if task failure stops the build, or is just reported. The default is true. | False
if | bool | If true then the task will be executed; otherwise, skipped. The default is true. | False
serverconnect | string | The address and port number of the Surround SCM server host computer. Format is server:port. If not entered, the last saved connection parameters are used. | False
serverlogin | string | The username and password used to login to the Surround SCM server. Format is username:password. If not entered, the last saved login parameters are used. | False
timeout | int | The maximum amount of time the application is allowed to execute, expressed in milliseconds. Defaults to no time-out. | False
unless | bool | Opposite of `if`. If false then the task will be executed; otherwise, skipped. The default is false. | False
verbose | bool | Determines whether the task should report detailed build log messages. The default is false. | False

### Framework-configurable parameters

Attribute | Type | Description | Required
--- | --- | --- | ---
managed | ManagedExecution | Specifies whether the external program should be treated as a managed application, possibly forcing it to be executed under the currently targeted version of the CLR. | False
useruntimeengine | bool | Deprecated. Specifies whether the external program is a managed application which should be executed using a runtime engine, if configured. The default is false. | False

### Nested Elements:

#### <arg>

The command-line arguments for the external program.

Represents a command-line argument.

When passed to an external application, the argument will be quoted when appropriate. This does not apply to the `line` parameter, which is always passed as is.

### Parameters

Attribute | Type | Description | Required
--- | --- | --- | ---
dir | directory | The value for a directory-based command-line argument; will be replaced with the absolute path of the directory. | False
file | file | The name of a file as a single command-line argument; will be replaced with the absolute filename of the file. | False
if | bool | Indicates if the argument should be passed to the external program. If true then the argument will be passed; otherwise, skipped. The default is true. | False
line | string | List of command-line arguments; will be passed to the executable as is. | False
path | <path> | The value for a PATH-like command-line argument; you can use `:` or `;` as path separators and NAnt will convert it to the platform's local conventions, while resolving references to environment variables. | False
unless | bool | Indicates if the argument should not be passed to the external program. If false then the argument will be passed; otherwise, skipped. The default is false. | False
value | string | A single command-line argument; can contain space characters. | False

### Nested Elements:

#### <path>

Sets a single command-line argument and treats it like a PATH - ensures the right separator for the local platform is used.

#### </path>

### Examples

- A single command-line argument containing a space character.

      <arg value="-l -a" />

- Two separate command-line arguments.

      <arg line="-l -a" />

- A single command-line argument with the value `\dir;\dir2;\dir3` on DOS-based systems and `/dir:/dir2:/dir3` on Unix-like systems.

      <arg path="/dir;/dir2:\dir3" />

#### </arg>

### Examples

- Check In all files and repositories from repository 'Mainline/Widget' recursively from the 'Widget 1.0' branch to the working directory setup for user 'administrator'. This call outputs the progress of the Check In to the console.

                  <sscmcheckin
                      serverconnect="localhost:4900"
                      serverlogin="administrator:"
                      file="/"
                      branch="Widget 1.0"
                      repository="Mainline/Widget"
                      recursive="true"
                      comment="I made some changes"
                  />

- Check in file 'Mainline/Widget/Widget.java' from the 'Widget 1.0' branch from the working directory setup for user 'administrator' with comment 'I made some changes'. Set the 'Release 1.1.1' label to this new version, even if the label already exists on an earlier version.

                  <sscmcheckin
                      serverconnect="localhost:4900"
                      serverlogin="administrator:"
                      file="Widget.java"
                      branch="Widget 1.0"
                      repository="Mainline/Widget"
                      comment="I made some changes"
                      label="Release 1.1.1"
                      overwritelabel="true"
                  />

### Requirements

Assembly: NAnt.Contrib.Tasks (0.91.4312.0)