189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
|
# File 'lib/chef/provider/git.rb', line 189
def checkout
converge_by("checkout ref #{target_revision} branch #{new_resource.revision}") do
if new_resource.checkout_branch
git("branch", "-f", new_resource.checkout_branch, target_revision, cwd: cwd)
git("checkout", new_resource.checkout_branch, cwd: cwd)
logger.info "#{new_resource} checked out branch: #{new_resource.revision} onto: #{new_resource.checkout_branch} reference: #{target_revision}"
elsif sha_hash?(new_resource.revision) || !is_branch?
git("checkout", target_revision, cwd: cwd)
logger.info "#{new_resource} checked out reference: #{target_revision}"
elsif already_on_target_branch?
git("reset", "--hard", target_revision, cwd: cwd)
else
git("branch", "-f", new_resource.revision, target_revision, cwd: cwd)
git("checkout", new_resource.revision, cwd: cwd)
git("branch", "-u", "#{new_resource.remote}/#{new_resource.revision}", cwd: cwd)
logger.info "#{new_resource} checked out branch: #{new_resource.revision} reference: #{target_revision}"
end
end
end
|