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
Add subtree capability using :repo_tree variable

The variable `:repo_tree` now allows the specification of a sub-tree
that will be extracted from the repository when deploying. This is
useful when deploying a project that lives in a subdirectory of a larger
repository.  Implemented only for git and hg.  If not defined then the
behaviour is as previously and the whole repository is extracted.
All extraction is as before still subject to git-archive `.gitattributes`
Fix matching on hosts with custom ports or users set

This is an update of PR #1072 with passing tests
Thanks @cheald

Fixes #1071
Closes #1072
Merge pull request #1157 from shaneog/issue-1071

Fix matching on hosts with custom ports or users set
Fix readme code escaping
Disable loading stages configs on `cap -T`
Merge pull request #1078 from sponomarev/remove_stages_from_load_imports

Disable loading stages configs on `cap -T`
Do not raise exceptions when stdio is closed 

Question was calling methods on nil and `Errno::EIO` was raised.

This way you can properly handle `Interrupt` exception.
Merge pull request #1172 from mikz/patch-2

Do not raise exceptions when stdio is closed
remove Question dependency on env

* Question was setting itself to the env but env itself persists it
* Env#fetch saves everyting that responds to #call by set
made the deploy.rb template show better examples of how to set linked_dirs and linked_files.  refs #922
Merge pull request #1179 from betesh/master

made the deploy.rb template show better examples of how to set linked_dirs and linked_files.  refs #922
Configuration.new accepts initial hash

for easier testing of Capistrano plugins