Throw exception on git failure, rather than exit silently
Make symlink:release an atomic operation

http://blog.moertel.com/posts/2005-08-22-how-to-change-symlinks-atomically.html
Remove -Tf options from mv

I may be incorrect in assuming that the -Tf in the mv command is what
prevents this from being a cross platform solution. This new method is
still replacing the symlink in an atomic way without requiring -Tf
Prevent collisions in the shared folder

A user may want to have a folder or file named "current" in their shared
folder. By creating the temporary symlink in a tmp folder in the
`deploy_path`, we avoid potentially overriding a user's "current" file.
Merge 'upstream/master' into atomic_symlink
Make the temporary symlink in the release path

This should avoid collisions without the need to create and destroy a
folder just for the temporary symlink.
Use :release_timestamp variable from env

Use :release_timestamp variable from env
Sort releases by timestamp for rollback/cleanup
Fix readme code escaping
Configuration.new accepts initial hash

for easier testing of Capistrano plugins
Properly shellescape file in remote_file

When doing `test` the file should be shellescaped
Merge pull request #1182 from mikz/patch-2

Properly shellescape file in remote_file
Merge pull request #1186 from townsen/clean_trace

Remove unnecessary entries from default backtrace
Remove rubysl from the rbx gem group
Merge pull request #1161 from arronmabrey/patch-1

Fix readme code escaping
Merge pull request #1138 from neekipatel/master

Use :release_timestamp variable from env
Merge pull request #1141 from plu/master

Sort releases by timestamp for rollback/cleanup
Merge pull request #1097 from quixoten/atomic_symlink

Make symlink:release an atomic operation
Update assertions for 'git:check' test scenario

Capistrano 'git:check' task executes a `git ls-remote -h #{repo_url}`
command to check if remote repo is accessible. If successful, command
output is a list of references and their SHAs.

Task should be successful and we're pretty sure remote repo will have a
`master` reference, so that's what we're asserting.

We're NOT asserting:
 * repo references other than master - likely to change
 * reference SHAs - will definitely change
Use a more idiomatic `apt-get install` method