Merge pull request #224 from puppet-by-examples/single-branch
authorTP Honey <tphoney@users.noreply.github.com>
Tue, 21 Apr 2015 09:01:39 +0000 (10:01 +0100)
committerTP Honey <tphoney@users.noreply.github.com>
Tue, 21 Apr 2015 09:01:39 +0000 (10:01 +0100)
Shallow clone with one commit that corresponds to arbitrary tag from arbitrary branch

lib/puppet/provider/vcsrepo/git.rb
lib/puppet/type/vcsrepo.rb

index 000032e..8101253 100644 (file)
@@ -5,7 +5,7 @@ Puppet::Type.type(:vcsrepo).provide(:git, :parent => Puppet::Provider::Vcsrepo)
 
   commands :git => 'git'
 
-  has_features :bare_repositories, :reference_tracking, :ssh_identity, :multiple_remotes, :user, :depth, :submodules
+  has_features :bare_repositories, :reference_tracking, :ssh_identity, :multiple_remotes, :user, :depth, :branch, :submodules
 
   def create
     if @resource.value(:revision) and @resource.value(:ensure) == :bare
@@ -181,6 +181,9 @@ Puppet::Type.type(:vcsrepo).provide(:git, :parent => Puppet::Provider::Vcsrepo)
     if @resource.value(:depth) and @resource.value(:depth).to_i > 0
       args.push('--depth', @resource.value(:depth).to_s)
     end
+    if @resource.value(:branch)
+      args.push('--branch', @resource.value(:branch).to_s)
+    end
     if @resource.value(:ensure) == :bare
       args << '--bare'
     end
index 52eace8..e5dfbb5 100644 (file)
@@ -40,6 +40,9 @@ Puppet::Type.newtype(:vcsrepo) do
   feature :depth,
           "The provider can do shallow clones"
 
+  feature :branch,
+          "The name of the branch"
+
   feature :p4config,
           "The provider understands Perforce Configuration"
 
@@ -207,6 +210,10 @@ Puppet::Type.newtype(:vcsrepo) do
     desc "The value to be used to do a shallow clone."
   end
 
+  newparam :branch, :required_features => [:branch] do
+    desc "The name of the branch to clone."
+  end
+
   newparam :p4config, :required_features => [:p4config] do
     desc "The Perforce P4CONFIG environment."
   end