Using vcsrepo with CVS
======================

To create a blank repository
----------------------------

Define a `vcsrepo` without a `source` or `revision`:

    vcsrepo { "/path/to/repo":
      ensure => present,
      provider => cvs
    }

To checkout/update from a repository
------------------------------------

To get the current mainline:

    vcsrepo { "/path/to/workspace":
        ensure => present,
        provider => cvs,
        source => ":pserver:anonymous@example.com:/sources/myproj"
    }
    
To get a specific module on the current mainline:

    vcsrepo {"/vagrant/lockss-daemon-source":
        ensure   => present,
        provider => cvs,
        source   => ":pserver:anonymous@lockss.cvs.sourceforge.net:/cvsroot/lockss",
        module   => "lockss-daemon",
    }


You can use the `compression` parameter (it works like CVS `-z`):

    vcsrepo { "/path/to/workspace":
        ensure => present,
        provider => cvs,
        compression => 3,
        source => ":pserver:anonymous@example.com:/sources/myproj"
    }

For a specific tag, use `revision`:

    vcsrepo { "/path/to/workspace":
        ensure => present,
        provider => cvs,
        compression => 3,
        source => ":pserver:anonymous@example.com:/sources/myproj",
        revision => "SOMETAG"
    }

For sources that use SSH
------------------------

Manage your SSH keys with Puppet and use `require` in your `vcsrepo`
to ensure they are present.  For more information, see the `require`
metaparameter documentation[1].

More Examples
-------------

For examples you can run, see `examples/cvs/`

[1]: http://docs.puppetlabs.com/references/stable/metaparameter.html#require