# Reference
## Table of Contents
### Resource types
* [`vcsrepo`](#vcsrepo): A local version control repository
## Resource types
### `vcsrepo`
A local version control repository
#### Properties
The following properties are available in the `vcsrepo` type.
##### `ensure`
Valid values: `present`, `bare`, `mirror`, `absent`, `latest`
Ensure the version control repository.
##### `includes`
Paths to be included from the repository
##### `module`
The repository module to manage
##### `revision`
Valid values: `%r{^\S+$}`
The revision of the repository
##### `source`
The source URI for the repository
#### Parameters
The following parameters are available in the `vcsrepo` type.
* [`basic_auth_password`](#basic_auth_password)
* [`basic_auth_username`](#basic_auth_username)
* [`branch`](#branch)
* [`compression`](#compression)
* [`configuration`](#configuration)
* [`conflict`](#conflict)
* [`cvs_rsh`](#cvs_rsh)
* [`depth`](#depth)
* [`excludes`](#excludes)
* [`force`](#force)
* [`fstype`](#fstype)
* [`group`](#group)
* [`identity`](#identity)
* [`keep_local_changes`](#keep_local_changes)
* [`owner`](#owner)
* [`p4config`](#p4config)
* [`path`](#path)
* [`provider`](#provider)
* [`remote`](#remote)
* [`submodules`](#submodules)
* [`trust_server_cert`](#trust_server_cert)
* [`user`](#user)
##### `basic_auth_password`
HTTP Basic Auth password
##### `basic_auth_username`
HTTP Basic Auth username
##### `branch`
The name of the branch to clone.
##### `compression`
Compression level
##### `configuration`
The configuration directory to use
##### `conflict`
The action to take if conflicts exist between repository and working copy
##### `cvs_rsh`
The value to be used for the CVS_RSH environment variable.
##### `depth`
The value to be used to do a shallow clone.
##### `excludes`
Local paths which shouldn't be tracked by the repository
##### `force`
Valid values: ``true``, ``false``, `yes`, `no`
Force repository creation, destroying any files on the path in the process.
Default value: ``false``
##### `fstype`
Filesystem type
##### `group`
The group/gid that owns the repository files
##### `identity`
SSH identity file
##### `keep_local_changes`
Valid values: ``true``, ``false``
Keep local changes on files tracked by the repository when changing revision
Default value: ``false``
##### `owner`
The user/uid that owns the repository files
##### `p4config`
The Perforce P4CONFIG environment.
##### `path`
namevar
Absolute path to repository
##### `provider`
The specific backend to use for this `vcsrepo` resource. You will seldom need to specify this --- Puppet will usually
discover the appropriate provider for your platform.
##### `remote`
The remote repository to track
Default value: `origin`
##### `submodules`
Valid values: ``true``, ``false``
Initialize and update each submodule in the repository.
Default value: ``true``
##### `trust_server_cert`
Valid values: ``true``, ``false``
Trust server certificate
Default value: ``false``
##### `user`
The user to run for repository operations