From dd31bce5655d7417cb4685ec6740898929a0b10c Mon Sep 17 00:00:00 2001 From: mikeknox Date: Wed, 7 Jul 2010 21:10:56 +1000 Subject: When ensure => latest, svn didn't update. svn provider now gets the latest revision from the repo, rather than the checkout Test with revision => as well now when ensure => latest, only refresh dependent resources if the repo is actually updated Tidied up debug messages --- lib/puppet/provider/vcsrepo/svn.rb | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'lib/puppet/provider/vcsrepo/svn.rb') diff --git a/lib/puppet/provider/vcsrepo/svn.rb b/lib/puppet/provider/vcsrepo/svn.rb index f712bf5..e856220 100644 --- a/lib/puppet/provider/vcsrepo/svn.rb +++ b/lib/puppet/provider/vcsrepo/svn.rb @@ -26,6 +26,22 @@ Puppet::Type.type(:vcsrepo).provide(:svn, :parent => Puppet::Provider::Vcsrepo) def destroy FileUtils.rm_rf(@resource.value(:path)) end + + def latest? + at_path do + if self.revision < self.latest then + return false + else + return true + end + end + end + + def latest + at_path do + svn('info', '-r', 'HEAD')[/^Revision:\s+(\d+)/m, 1] + end + end def revision at_path do @@ -59,4 +75,4 @@ Puppet::Type.type(:vcsrepo).provide(:svn, :parent => Puppet::Provider::Vcsrepo) svnadmin(*args) end -end +end \ No newline at end of file -- cgit v1.2.3