This special remote type rsyncs file contents to somewhere else.
Setup example:
# git annex initremote myrsync type=rsync rsyncurl=rsync://rsync.example.com/myrsync keyid=joey@kitenet.net
# git annex describe myrsync "rsync server"
Or for using rsync over SSH
# git annex initremote myrsync type=rsync rsyncurl=ssh.example.com:/myrsync keyid=joey@kitenet.net
# git annex describe myrsync "rsync server"
configuration
These parameters can be passed to git annex initremote
to configure rsync:
encryption
- One of "none", "hybrid", "shared", or "pubkey". See encryption.keyid
- Specifies the gpg key to use for encryption.rsyncurl
- Required. This is the url orhostname:/directory
to pass to rsync to tell it where to store content.shellescape
- Optional. Set to "no" to avoid shell escaping normally done when using rsync over ssh. That escaping is needed with typical setups, but not with some hosting providers that do not expose rsynced filenames to the shell. You'll know you need this option ifgit annex get
from the special remote fails with an error message containing a single quote ('
) character. If that happens, you can run enableremote setting shellescape=no.
The annex-rsync-options
git configuration setting can be used to pass
parameters to rsync.
annex-rsync-transport
You can use the annex-rsync-transport
git configuration setting to choose
whether we run rsync over ssh or rsh. This setting is also used to specify
parameters that git annex will pass to ssh/rsh.
ssh is the default transport; if you'd like to run rsync over rsh, modify your .git/config to include
annex-rsync-transport = rsh
under the appropriate remote.
To pass parameters to ssh/rsh, include the parameters after "rsh" or
"ssh". For example, to configure ssh to use the private key at
/path/to/private/key
, specify
annex-rsync-transport = ssh -i /path/to/private/key
Note that environment variables aren't expanded here, so for example, you
cannot specify -i $HOME/.ssh/private_key
.