brainstorm/bcbb — pull request #51 by vals (2011-10-11 12:39:25+00:00)
Title: Develop - Feature: Transfer protocol abstraction

These changes refactors transfer to a separate module as there was repeated code in two places (toplevel.py and storage.py). There is also the added ability to specify a protocol used for transferring files in the config yaml. The key is "protocol", if the key is not present scp will be used as before. The possible keys are "scp", "rsync" and "rdiff-backup" (without the quotes that is).

The behavior is slightly different between the protocols:
* scp - Only files that does not exist at the destination will be copied
* rsync - If a file on the destination has the same file name, rsync will try to resume the progress on that file, and by that change it.
* rdiff-backup - If a file has the same name on the destination, it will be overwritten.