From 5b89b20928fa262fc6683995b0e679fe13e00035 Mon Sep 17 00:00:00 2001 From: Adam Gandelman Date: Wed, 16 Mar 2011 01:22:17 +0800 Subject: git.rb: update_references before touching tags. tags created since last vcsrepo run fail otherwise --- lib/puppet/provider/vcsrepo/git.rb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/puppet/provider/vcsrepo/git.rb b/lib/puppet/provider/vcsrepo/git.rb index bbcf14c..662ddff 100644 --- a/lib/puppet/provider/vcsrepo/git.rb +++ b/lib/puppet/provider/vcsrepo/git.rb @@ -42,12 +42,19 @@ Puppet::Type.type(:vcsrepo).provide(:git, :parent => Puppet::Provider::Vcsrepo) if branch == 'master' return get_revision('origin/HEAD') else - return get_revision('origin/%s' % branch) + return get_revision('origin/%s' % branch) end end def revision - return get_revision('HEAD') + update_references + current = at_path { git('rev-parse', 'HEAD') } + canonical = at_path { git('rev-parse', @resource.value(:revision)) } + if current == canonical + @resource.value(:revision) + else + current + end end def revision=(desired) -- cgit v1.2.3