fix branch existence determintaion functionality
authorgodlikeachilles <achilleska@gmail.com>
Wed, 2 Dec 2015 04:07:15 +0000 (15:07 +1100)
committergodlikeachilles <achilleska@gmail.com>
Wed, 2 Dec 2015 04:07:15 +0000 (15:07 +1100)
this will stop failing in case there is a tag which is a substring of an existing branch name.
for example if there is a tag 'release' and a branch 'release/integration' current code will match 'release/integration' with pattern 'release' and decide that a branch checkout is needed. but release branch does not exist so it will fail.
this simple fix resolves the issue.

lib/puppet/provider/vcsrepo/git.rb

index 3b20a83..0249a3c 100644 (file)
@@ -319,7 +319,7 @@ Puppet::Type.type(:vcsrepo).provide(:git, :parent => Puppet::Provider::Vcsrepo)
   def remote_branch_revision?(revision = @resource.value(:revision))
     # git < 1.6 returns '#{@resource.value(:remote)}/#{revision}'
     # git 1.6+ returns 'remotes/#{@resource.value(:remote)}/#{revision}'
-    branch = at_path { branches.grep /(remotes\/)?#{@resource.value(:remote)}\/#{revision}/ }
+    branch = at_path { branches.grep /(remotes\/)?#{@resource.value(:remote)}\/#{revision}$/ }
     branch unless branch.empty?
   end