Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
The last merge: 4d2942edc26e7cd144a3178a1a7f6470ea401345 brought some
regression that this patch should hopefully fix.
Firstly, the tool no longer supported updating a branch as the syntax for git
pull on anything but a branch was invalid.
This also removes the extra call to 'checkout' which was causing behaviour
to occur without notifying puppet, thus causing subscription notifications
to not fire.
|
|
options to ensure no prompting (also fixed in pull request #1 by riseuplabs), added ability to keep repository up to date with latest (puppetlabs ticket 11278)
|
|
Rather than fill the git provider with hard-coded references to
origin, it would be better to abstract out which remote the resource
is fetching from. But since this is only relevant to decentralized
version-control systems, a multiple_remotes feature was added for
the parameter to depend on. So far this is only implemented for git
remotes, but it could be implemented for other VCSs as well.
|
|
The git provider had some problems checking out SHA1s - it couldn't.
And what's worse, it lied about what it was doing saying that it did
checkout the SHA1.
There was also a bug where if you specified a different branch than you
were on, it was doing a `reset --hard` to the specified branch. For
example, if master was checked out, and you set "revision => stable", it
would `git reset --hard stable` on the master branch instead of just
checking out stable. Maybe the original author did this to get around
being unable to checkout when you had local changes, but the --force
flag to checkout will fix that.
With this change, you should now be able to specify a branch, tag, or
SHA1 in the revision attribute and have it work.
|
|
These are called when the type is retrieve'd. Without this, the ownerships
for any .git metafiles fetch'd durring the retrieve will be owned by
root. This patch fixes that by invoking update_owner_and_excludes after
fetch'ng
|
|
This will work around the issue in http://projects.puppetlabs.com/issues/6907, as the agent run will no longer fail if one of the commands is not installed.
This gives you enough time to install the necessary packages through Puppet (make sure you get the dependencies right), as the agent won't fail unless you really start accessing the repository.
|
|
both now.
|
|
specify a revision
|
|
ssh identity file
|