rsync special remote

Fully tested and working, including resuming and encryption. (Though not
resuming when sending *with* encryption; gpg doesn't produce identical
output each time.)

Uses same layout as the directory special remote and the .git/annex/objects/
directory.
This commit is contained in:
Joey Hess 2011-04-27 20:06:07 -04:00
parent 4381ac062f
commit e68f128a9b
11 changed files with 265 additions and 19 deletions

View file

@ -7,4 +7,4 @@ the drive's mountpoint as a directory remote.
Setup example:
# git annex initremote usbdrive directory=/media/usbdrive/ encryption=none
# git annex initremote usbdrive type=directory directory=/media/usbdrive/ encryption=none

View file

@ -0,0 +1,23 @@
This special remote type rsyncs file contents to somewhere else.
Setup example:
# git annex initremote myrsync type=rsync rsyncurl=rsync://rsync.example.com/myrsync encryption=joey@kitenet.net
## configuration
These parameters can be passed to `git annex initremote` to configure rsync:
* `encryption` - Required. Either "none" to disable encryption of content
stored in rsync,
or a value that can be looked up (using gpg -k) to find a gpg encryption
key that will be given access to the remote. Note that additional gpg
keys can be given access to a remote by rerunning initremote with
the new key id. See [[encryption]].
* `rsyncurl` - Required. This is the url or `hostname:/directory` to
pass to rsync to tell it where to store content.
The `annex-rsync-options` git configuration setting can be used to pass
parameters to rsync. Note that it is **not safe** to put "--delete"
in `annex-rsync-options` when using rsync special remotes.