Merge pull request #171 from p4paul/master
authorHunter Haugen <hunter@puppetlabs.com>
Mon, 30 Jun 2014 23:14:03 +0000 (16:14 -0700)
committerHunter Haugen <hunter@puppetlabs.com>
Mon, 30 Jun 2014 23:14:03 +0000 (16:14 -0700)
Basic Perforce provider

1  2 
README.markdown
lib/puppet/type/vcsrepo.rb

diff --cc README.markdown
@@@ -53,104 -54,13 +54,105 @@@ To get started with the vcsrepo module
  
  The vcsrepo module works with the following VCSs:
  
 +* [Git (git)](#git)*
  * [Bazaar (bzr)](#bazaar)
  * [CVS (cvs)](#cvs)
 -* [Git (git)](#git)
  * [Mercurial (hg)](#mercurial)
+ * [Perforce (p4)](#perforce)
  * [Subversion (svn)](#subversion)
  
 +**Note:* Git is the only VCS provider officially [supported](https://forge.puppetlabs.com/supported) by Puppet Labs.
 +
 +
 +###Git
 +
 +#####To create a blank repository
 +
 +To create a blank repository suitable for use as a central repository,
 +define `vcsrepo` without `source` or `revision`.
 +
 +    vcsrepo { "/path/to/repo":
 +      ensure   => present,
 +      provider => git,
 +    }
 +
 +If you're defining `vcsrepo` for a central or official repository, you may want to make it a bare repository.  You do this by setting `ensure` to 'bare' rather than 'present'.
 +
 +    vcsrepo { "/path/to/repo":
 +      ensure   => bare,
 +      provider => git,
 +    }
 +
 +#####To clone/pull a repository
 +
 +To get the current HEAD on the master branch,
 +
 +    vcsrepo { "/path/to/repo":
 +      ensure   => present,
 +      provider => git,
 +      source   => "git://example.com/repo.git",
 +    }
 +
 +To get a specific revision or branch (can be a commit SHA, tag, or branch name),
 +
 + **SHA**
 +
 +    vcsrepo { "/path/to/repo":
 +      ensure   => present,
 +      provider => git,
 +      source   => 'git://example.com/repo.git',
 +      revision => '0c466b8a5a45f6cd7de82c08df2fb4ce1e920a31',
 +    }
 +
 +**Tag**
 +
 +    vcsrepo { "/path/to/repo":
 +      ensure   => present,
 +      provider => git,
 +      source   => 'git://example.com/repo.git',
 +      revision => '1.1.2rc1',
 +    }
 +
 +**Branch name**
 +
 +    vcsrepo { "/path/to/repo":
 +      ensure   => present,
 +      provider => git,
 +      source   => 'git://example.com/repo.git',
 +      revision => 'development',
 +    }
 +
 +To check out a branch as a specific user,
 +
 +    vcsrepo { "/path/to/repo":
 +      ensure   => present,
 +      provider => git,
 +      source   => 'git://example.com/repo.git',
 +      revision => '0c466b8a5a45f6cd7de82c08df2fb4ce1e920a31',
 +      user     => 'someUser',
 +    }
 +
 +To keep the repository at the latest revision (**WARNING:** this will always overwrite local changes to the repository),
 +
 +    vcsrepo { "/path/to/repo":
 +      ensure   => latest,
 +      provider => git,
 +      source   => 'git://example.com/repo.git',
 +      revision => 'master',
 +    }
 +
 +#####Sources that use SSH
 +
 +When your source uses SSH, such as 'username@server:…', you can manage your SSH keys with Puppet using the [require](http://docs.puppetlabs.com/references/stable/metaparameter.html#require) metaparameter in `vcsrepo` to ensure they are present.
 +
 +For SSH keys associated with a user, enter the username in the `user` parameter. Doing so will use that user's keys.
 +
 +    user => 'toto'  # will use toto's $HOME/.ssh setup
 +
 +#####Further Examples
 +
 +For more examples using Git, see `examples/git/`.
 +
  ###Bazaar
  
  #####Create a blank repository
Simple merge