kselden/guard-rsync — pull request #8 by aspiers (2013-05-08 23:24:28+00:00)
Title: Many changes for improved flexibility

This patch series is a collection of functionality enhancements, bug
fixes, and refactorings. The highlights are:

* `--delete` is now optional.
* Arbitrary arguments can be passed to rsync.
* File removal is handled separately via run_on_removals
* The `:excludes` option is now an Array of Strings, not a
Hash of Regexps. This is a backwards-incompatible change;
however it should be possible to reintroduce support for
Hashes prior to the next release.

This allows new use cases, in particular where multiple source trees
are rsync'd to a single merged destination tree, e.g.:

https://github.com/crowbar/crowbar/pull/1795

Previously the presence of --delete would have meant that any change
in one of the source trees would cause files from all the other trees
to get wiped from the destination.