def sync
revision = revision_sha
sync_command = []
if @new_resource.remote != 'origin'
Chef::Log.info "Configuring remote tracking branches for repository #{@new_resource.repository} "+
"at remote #{@new_resource.remote}"
sync_command << "#{git} config remote.#{@new_resource.remote}.url #{@new_resource.repository}"
sync_command << "#{git} config remote.#{@new_resource.remote}.fetch +refs/heads/*:refs/remotes/#{@new_resource.remote}/*"
end
sync_command << "#{git} fetch #{@new_resource.remote} && #{git} fetch #{@new_resource.remote} --tags && #{git} reset --hard #{revision}"
Chef::Log.info "Fetching updates from #{new_resource.remote} and resetting to revison #{revision}"
run_command(run_options(:command => sync_command.join(" && "), :cwd => @new_resource.destination))
end