diff options
-rw-r--r-- | lib/puppet/provider/vcsrepo/hg.rb | 5 | ||||
-rw-r--r-- | lib/puppet/type/vcsrepo.rb | 6 | ||||
-rw-r--r-- | spec/unit/puppet/provider/vcsrepo/hg_spec.rb | 2 |
3 files changed, 10 insertions, 3 deletions
diff --git a/lib/puppet/provider/vcsrepo/hg.rb b/lib/puppet/provider/vcsrepo/hg.rb index 54205c2..0be5e08 100644 --- a/lib/puppet/provider/vcsrepo/hg.rb +++ b/lib/puppet/provider/vcsrepo/hg.rb @@ -65,7 +65,10 @@ Puppet::Type.type(:vcsrepo).provide(:hg, :parent => Puppet::Provider::Vcsrepo) d def revision=(desired) at_path do - hg('pull') + begin + hg('pull') + rescue + end begin hg('merge') rescue Puppet::ExecutionFailure diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index e291066..231ce93 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -43,6 +43,8 @@ Puppet::Type.newtype(:vcsrepo) do else return false end + when :bare + return is == :bare end end @@ -51,7 +53,9 @@ Puppet::Type.newtype(:vcsrepo) do end newvalue :bare, :required_features => [:bare_repositories] do - provider.create + if !provider.exists? + provider.create + end end newvalue :absent do diff --git a/spec/unit/puppet/provider/vcsrepo/hg_spec.rb b/spec/unit/puppet/provider/vcsrepo/hg_spec.rb index 53e5596..6f32d44 100644 --- a/spec/unit/puppet/provider/vcsrepo/hg_spec.rb +++ b/spec/unit/puppet/provider/vcsrepo/hg_spec.rb @@ -74,7 +74,7 @@ describe_provider :vcsrepo, :hg, :resource => {:path => '/tmp/vcsrepo'} do context "when it is the same as the current SHA", :resource => {:revision => '34e6012c783a'} do it "should return it" do - provider.expects(:hg).with('tags').never + provider.expects(:hg).with('tags').returns(fixture(:hg_tags)) provider.revision.should == resource.value(:revision) end end |