summaryrefslogtreecommitdiff
path: root/lib/puppet/provider/vcsrepo/git.rb
AgeCommit message (Collapse)Author
2015-05-13(MODULES-821) Don't use /tmpHunter Haugen
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.
2015-04-21Merge pull request #224 from puppet-by-examples/single-branchTP Honey
Shallow clone with one commit that corresponds to arbitrary tag from arbitrary branch
2015-03-25Fix remote hash ordering for unit testsColleen Murphy
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.
2015-01-29Use branch parameterWłodzimierz Gajda
2015-01-21Implemented multiple remotes feature for git provider.Jonathan Tripathy
2015-01-18Merge pull request #218 from dduvnjak/masterAaron Stone
Add submodules feature to git provider
2015-01-18Add submodules feature to git providerdduvnjak
2014-12-26MODULES-1596 - Repository repeatedly destroyed/created with forceMorgan Haskel
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.
2014-10-21Merge pull request #200 from Paulche/change_uidAaron Stone
Change uid by Puppet execution API
2014-09-17Handle both Array/Enumerable and String values for excludes parameterAaron Stone
Thanks to @revhazroot for identifying the problem that excludes with a string or single-element array fails on Ruby >= 1.9.
2014-08-20Change uid by Puppet execution APIPaul Chechetin
2014-07-11(MODULES-660) Correct detached HEAD on latestHunter Haugen
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
2014-06-30Fix issue with node changing every checkinJoshua B. Bussdieker
2014-05-21Merge pull request #145 from hunner/fix_beaker_testsJohn Duarte
Update specs and fix FM-1361
2014-05-21Update specs and fix FM-1361Hunter Haugen
- 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
2014-05-22Un-optional the non-optional commands.Daniele Sluijters
2014-05-15update to use -a and desired for hard resetTravis Fields
2014-05-15Fix detached head stateTravis Fields
2014-05-13Fix issue where force=>true was not destroying repository then recreatingTravis Fields
2014-02-12use `git rev-parse` to get tag canonical revision.Huan Du
2014-01-24Merge pull request #105 from mcanevet/no_suAshley Penney
Don't 'su' if passed user is current user
2014-01-11git: actually use the remote parameterMiguel Di Ciurcio Filho
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
2014-01-07Add the option to shallow clones with gitFelipe Reyes
The new parameter used to indicate that you want a shallow clone is `:depth`
2013-12-04Stripping git on_branch? return value; contains trailing newlineMike Gerwitz
This commit also contains git provider `latest' method formatting changes; squashed by request.
2013-12-02Using rev-parse to determine branch name of HEAD for on_branch? methodMike Gerwitz
2013-12-02origin/HEAD is not valid; use origin/master for latest when branch == 'master'Mike Gerwitz
2013-11-24Don't 'su' if passed user is current userMickaẽl Canévet
2013-08-28update git provider to handle checking out into an existing (empty) dirJohn Iacona
2013-07-19Style adjustmentAaron Stone
2013-07-19WhitespaceAaron Stone
2013-07-17Use git checkout --force instead of short -f everywhereAaron Stone
2013-07-17Merge pull request #46 from Paulche/masterAaron Stone
Enable unlimited nesting for submodule updating
2013-07-17Merge pull request #78 from jhoblitt/git_provider_checkout_remote_refsAaron Stone
fix git provider checkout of a remote ref on an existing repo
2013-07-17fix git provider checkout of a remote ref on an existing repoJoshua Hoblitt
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
2013-07-17WhitespaceAaron Stone
2013-07-17Unlimited sudmodule's nesting for git providerPaul Chechetin
2013-04-17add timeout to ssh sessions negotiation to prevent github problems (or any ↵Ramin K
other remote connection issues) from blocking the Puppet run
2013-03-20Merge pull request #58 from sim0nf/fix_regexBen Ford
Tighten regex to avoid matching the word 'commit' in message
2013-03-18Merge pull request #59 from binford2k/clone_as_non-root_userBen Ford
Allow non-root users to clone a repo Merging my own PR because it's just a rework of an existing PR.
2013-03-18Allow non-root users to clone a repoBen Ford
Without this, git will report that it can't change back to /root
2013-03-18Tighten regex to avoid matching the word 'commit' in messageSimon Forman
2013-03-12Merge pull request #56 from raphink/git_update_originBen Ford
Update origin if necessary before checking revision This looks good. Thanks!
2013-03-11Create the repository with proper permissions.Ben Ford
2013-03-06Update origin if necessary before checking revisionRaphaël Pinson
2012-10-18Add a dummy provider, remove 'defaultfor' from all other providers. Resolves ↵Aaron Stone
warning about multiple default providers for :vcsrepo.
2012-09-19(#16495, #15660) Fix regression for notifications and pulls on git providerKen Barber
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.
2012-06-29Run git operations as a specific user (puppetlabs ticket 4773), added ssh ↵Eric Hayes
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)
2012-05-13Add the ability to specify a git remoteJesusaurus
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.
2012-01-19(#11798) Fix git checkout of revisionsMatt Robinson
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.
2011-11-08Run update_owner_and_excludes after update_preferences and get_revisionScott O'Neil
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