Age | Commit message (Collapse) | Author |
|
MODULES-2131 Git provider now takes account of revision property when using depth property.
|
|
depth property.
|
|
Consider the submodules flag on specific revision cloning
|
|
Very often /tmp is mounted noexec for security reasons related to it
being writable by all users. This stopped vcsrepo's git provider from
working.
This pull request uses puppet's statedir as it is not writable by all
users and is a good candidate for transient state like the git
provider's identity script for the $GIT_SSH command.
An alternative in the future that wouldn't require a temporary file is
to set $GIT_SSH_COMMAND instead of $GIT_SSH, except this was added in
git 2.3 and is too new to depend on.
|
|
Shallow clone with one commit that corresponds to arbitrary tag from arbitrary branch
|
|
Without this commit, the unit tests for the git provider changing
multiple remotes mocks the remotes in a particular order. While in
practice it doesn't matter which remote the update_remotes method
updates first, the unit tests must be able to mock them in the correct
order. For ruby 1.8.7, a Hash will not necessarily produce key value
pairs in the same order on each run, which causes intermittent failures
in the unit tests. This change sorts the :source property values before
trying to update them, and updates the unit tests to expect the values
in alphabetical order.
|
|
|
|
|
|
|
|
|
|
Add submodules feature to git provider
|
|
|
|
The `retrieve` method was calling `create` and `destroy` on every run
with `force => true`. Retrieve should not be making any changes to the
system, so removed that code, and updated `working_copy_exists` to make
sure that the directory not only contains a `.git` directory, but also
if `source` is specified it also matches `#{path}/.git/config` so that
it will overwrite a git repo with a different source.
Updated tests to not check for the old broken behavior. Added a regression test.
|
|
Change uid by Puppet execution API
|
|
Thanks to @revhazroot for identifying the problem that excludes with a
string or single-element array fails on Ruby >= 1.9.
|
|
|
|
Previously vcsrepo detached HEAD on checkout which caused further branch
revisions to fail. This corrects the behavior, and works on git 1.7,
1.8, 1.9, and 2.0
|
|
|
|
Update specs and fix FM-1361
|
|
- Add install.rb for pre-suite
- Add catches for failures/changes to manifest application
- Correct root ssh key copying
- Add sleeps for killing processes releasing ports
- Fix FM-1361
|
|
|
|
|
|
|
|
|
|
|
|
Don't 'su' if passed user is current user
|
|
When using the following sample, the provider does not use the value of remote
when cloning a repository:
vcsrepo {'/path/to/repo':
ensure => 'present',
provider => 'git',
remote => 'test',
source => 'git@somerepo:repo.git',
}
$ git remote
origin
This commit makes sure that the new repository has a remote with the
supplied value.
Closes #MODULES-430
|
|
The new parameter used to indicate that you want a shallow clone is `:depth`
|
|
This commit also contains git provider `latest' method formatting changes;
squashed by request.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Enable unlimited nesting for submodule updating
|
|
fix git provider checkout of a remote ref on an existing repo
|
|
Per discussion of https://github.com/puppetlabs/puppetlabs-vcsrepo/issues/51 in
the git channel on freenode, EugeneKay <eugene@kashpureff.org> stated that `git
rev-parse` is not capable of inspecting remote refs but that `git ls-remote`
is. This patch makes a second attempt to resolve the ref with `ls-remote` if
`rev-parse` fails.
The git provider also appears to support several type features that are not
tagged under `has_features`. It's not clear if this is the best way to resolve
this issue or if the provider should be refactored to work with different type
features.
Demonstration of the problem with changing refs (branches and tags)
$ git --version
git version 1.7.1
$ cat master.pp branch.pp
vcsrepo { '/tmp/vcsrepo':
ensure => present,
provider => git,
source => 'https://github.com/puppetlabs/puppetlabs-vcsrepo.git',
revision => 'master',
}
vcsrepo { '/tmp/vcsrepo':
ensure => present,
provider => git,
source => 'https://github.com/puppetlabs/puppetlabs-vcsrepo.git',
revision => 'feature/cvs',
}
$ puppet apply --modulepath=`pwd`/.. master.pp
Notice: /Stage[main]//Vcsrepo[/tmp/vcsrepo]/ensure: Creating repository from present
Notice: /Stage[main]//Vcsrepo[/tmp/vcsrepo]/ensure: created
Notice: Finished catalog run in 2.19 seconds
$ puppet apply --modulepath=`pwd`/.. branch.pp
Error: /Stage[main]//Vcsrepo[/tmp/vcsrepo]: Could not evaluate: Execution of '/usr/bin/git rev-parse feature/cvs' returned 128: fatal: ambiguous argument 'feature/cvs': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
feature/cvs
Notice: Finished catalog run in 1.69 seconds
|
|
|
|
|
|
other remote connection issues) from blocking the Puppet run
|
|
Tighten regex to avoid matching the word 'commit' in message
|
|
Allow non-root users to clone a repo
Merging my own PR because it's just a rework of an existing PR.
|
|
Without this, git will report that it can't change back to /root
|
|
|
|
Update origin if necessary before checking revision
This looks good. Thanks!
|
|
|
|
|
|
warning about multiple default providers for :vcsrepo.
|