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 readme code escaping
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
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
Properly shellescape file in remote_file

When doing `test` the file should be shellescaped
Merge pull request #1177 from mikz/remove-question-env

remove Question dependency on env
Merge remote-tracking branch 'upstream/master' into scm_subtree

Conflicts:
	CHANGELOG.md
Remove unnecessary entries from default backtrace

When the --backtrace (or --trace) command line option is not supplied
Rake lowers the noise level in exception backtraces by building
a regular expression containing all the system library paths and
using it to exclude backtrace entries that match.

This doesn't always go far enough, particularly in RVM environments when
many gem paths are added. This commit reverses that approach and only
include backtrace entries that fall within the Capfile and list of tasks
imported thereafter.

If the full unexpurgated backtrace is required then the --backtrace
and --trace options supply it as before.
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