# <cvs-checkout>

[This is preliminary documentation and subject to change.]

Checks out a CVS module to the required directory.

### Parameters

Attribute | Type | Description | Required
--- | --- | --- | ---
date | datetime | Specify the revision date to checkout. The date specified is validated and then passed to the cvs binary in a standard format recognized by cvs. | False
overridedir | string | Specify a directory name to replace the module name. Valid names include any valid filename, excluding path information. | False
override-directory | string | Specify a directory name to replace the module name. Valid names include any valid filename, excluding path information. | False
revision | string | Specify the revision to checkout. This corresponds to the "sticky-tag" of the file. | False
sticky-tag | string | Sticky tag or revision to checkout. | False
commandline | string | Command-line arguments for the program. The command line arguments are used to specify any cvs command options that are not available as attributes. These are appended after the command itself and are additive to whatever attributes are currently specified. | False
compressionlevel | int | Compression level to use for all net traffic. This should be a value from 1-9. NOTE: This is not available on sharpcvslib. | False
cvsfullpath | file | The full path to the cvs binary used. The cvs tasks will attempt to "guess" the location of your cvs binary based on your path. If the task is unable to resolve the location, or resolves it incorrectly this can be used to manually specify the path. | False
cvsroot | string | The cvs root variable has the following components:
    [protocol]:[username]@[servername]:[server path]
protocol: ext, pserver, ssh (sharpcvslib); if you are not using sharpcvslib consult your cvs documentation. username: [username] servername: cvs.sourceforge.net server path: /cvsroot/nant | False
cvsrsh | file | The executable to use for ssh communication. | False
destination | directory | Destination directory for the local sandbox. If destination is not specified then the current directory is used. | 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
module | string | The module to perform an operation on. | False
passfile | file | The full path to the cached password file. If not specified then the environment variables are used to try and locate the file. | False
password | string | Deprecated. The password for logging in to the repository. | False
quiet | bool | Indicates if the output from the cvs command should be supressed. The default is false. | False
readonly | bool | true if the sandbox files should be checked out in read only mode. The default is false. | False
readwrite | bool | true if the sandbox files should be checked out in read/write mode. The default is true. | False
reallyquiet | bool | Indicates if the output from the cvs command should be stopped. The default is false. | 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
usesharpcvslib | bool | true if the SharpCvsLib binaries that come bundled with NAnt should be used to perform the cvs commands, false otherwise. You may also specify an override value for all cvs tasks instead of specifying a value for each. To do this set the property `sourcecontrol.usesharpcvslib` to false. If you choose not to use SharpCvsLib to checkout from cvs you will need to include a cvs.exe binary in your path. | 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:

#### <fileset>

Used to specify the version control system (VCS) files that are going to be acted on.

#### </fileset>

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

- Checkout NAnt.

                  <cvs-checkout
                      destination="c:\src\nant\"
                      cvsroot=":pserver:anonymous@cvs.sourceforge.net:/cvsroot/nant"
                      module="nant" />

- Checkout NAnt revision named `0_85` to the folder `c:\src\nant\v0.85`.

                  <cvs-checkout
                      destination="c:\src\nant"
                      cvsroot=":pserver:anonymous@cvs.sourceforge.net:/cvsroot/nant"
                      module="nant"
                      revision="0_85"
                      overridedir="v0.85" />

  So the nant module tagged with revision 0_85 will be checked out in the folder v0.85 under the working/ destination directory.
  This could be used to work on different branches of a repository at the same time.

- Checkout NAnt with specified revision date to the folder `c:\src\nant\2003_08_16`.

                  <cvs-checkout
                      destination="c:\src\nant\"
                      cvsroot=":pserver:anonymous@cvs.sourceforge.net:/cvsroot/nant"
                      module="nant"
                      date="2003/08/16"
                      overridedir="2003_08_16" />

### Requirements

Assembly: NAnt.SourceControlTasks (0.91.3881.0)