summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/provider/vcsrepo/hg.rb5
-rw-r--r--lib/puppet/type/vcsrepo.rb6
-rw-r--r--spec/unit/puppet/provider/vcsrepo/hg_spec.rb2
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