Skip to content
This repository has been archived by the owner on Feb 3, 2018. It is now read-only.

Latest commit

 

History

History
89 lines (67 loc) · 2.26 KB

README.GIT.markdown

File metadata and controls

89 lines (67 loc) · 2.26 KB

Using vcsrepo with Git

To create a blank repository

Define a vcsrepo without a source or revision:

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

If you're defining this for a central/"official" repository, you'll probably want to make it a "bare" repository. Do this by setting ensure to bare instead of present:

vcsrepo { "/path/to/repo":
    ensure => bare,
    provider => git
}

To clone/pull a repository

To get the current [master] HEAD:

vcsrepo { "/path/to/repo":
    ensure => present,
    provider => git,
    source => "git://example.com/repo.git"
}

For a specific revision or branch (can be a commit SHA, tag or branch name):

vcsrepo { "/path/to/repo":
    ensure => present,
    provider => git,
    source => 'git://example.com/repo.git',
    revision => '0c466b8a5a45f6cd7de82c08df2fb4ce1e920a31'
}

vcsrepo { "/path/to/repo":
    ensure => present,
    provider => git,
    source => 'git://example.com/repo.git',
    revision => '1.1.2rc1'
}

vcsrepo { "/path/to/repo":
    ensure => present,
    provider => git,
    source => 'git://example.com/repo.git',
    revision => 'development'
}

Check out as a user:

vcsrepo { "/path/to/repo":
    ensure => present,
    provider => git,
    source => 'git://example.com/repo.git',
    revision => '0c466b8a5a45f6cd7de82c08df2fb4ce1e920a31',
    user => 'someUser'
}

Keep the repository at the latest revision (note: 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',
}

For sources that use SSH (eg, username@server:...)

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

More Examples

For examples you can run, see examples/git/