# <sscmcheckout>

Checks out files from a Surround SCM repository.

You can check out single files, multiple files, or a full repository. Surround SCM creates a read-write copy of the files in the working directory.

### 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-out. | False
exclusive | bool | Exclusively lock the files. The default is false. | False
file | string | File or repository name. Can be / or empty, which means the repository specified by the `repository` attribute or the default repository. | False
force | bool | Force file retrieval from server regardless of the local copy status. The default is false. | False
overwrite | bool | Specifies whether to overwrite local writable files. 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 get 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
timestamp | string | Specifies how to set the local file's date/time. Possible values are `current`, `modify` or `checkin`. | False
version | string | Specifies the file version to check out. Ignored if no specific filename is set using the `file` attribute. | 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
--- | --- | --- | ---
useruntimeengine | bool | Specifies whether the external program 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.

### 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 Out 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 forces the file retrieval from the server even if the local file is current and overwrites any writable local files with the server copy.

      <sscmcheckout
          serverconnect="localhost:4900"
          serverlogin="administrator:"
          file="/"
          branch="Widget 1.0"
          repository="Mainline/Widget"
          recursive="true"
          force="true"
          comment="This is my Check Out comment"
      />

- Check Out version 1 of the file 'Mainline/Widget/Widget.java' exclusively from the 'Widget 1.0' branch to the working directory setup for user 'administrator'. Writable local files are not overwritten, even if they are out of date.

      <sscmcheckout
          serverconnect="localhost:4900"
          serverlogin="administrator:"
          quiet="true"
          file="Widget.java"
          branch="Widget 1.0"
          repository="Mainline/Widget"
          overwrite="false"
          writable="true"
          version="1"
          exclusive="true"
      />

### Requirements

Assembly: NAnt.Contrib.Tasks (0.85.2479.0)