Fix issue with node changing every checkin
authorJoshua B. Bussdieker <jbussdieker@gmail.com>
Wed, 25 Jun 2014 23:28:04 +0000 (16:28 -0700)
committerJoshua B. Bussdieker <jbussdieker@gmail.com>
Mon, 30 Jun 2014 21:12:38 +0000 (14:12 -0700)
lib/puppet/provider/vcsrepo/git.rb

index 5c878ed..5c5dd07 100644 (file)
@@ -52,7 +52,9 @@ Puppet::Type.type(:vcsrepo).provide(:git, :parent => Puppet::Provider::Vcsrepo)
     return current unless @resource.value(:revision)
 
     if tag_revision?(@resource.value(:revision))
-      canonical = at_path { git_with_identity('rev-parse', @resource.value(:revision)).chomp }
+      # git-rev-parse will give you the hash of the tag object itself rather than the commit it points to by default.
+      # Using tag^0 will return the actual commit.
+      canonical = at_path { git_with_identity('rev-parse', "#{@resource.value(:revision)}^0").chomp }
     else
       # if it's not a tag, look for it as a local ref
       canonical = at_path { git_with_identity('rev-parse', '--revs-only', @resource.value(:revision)).chomp }