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

@ -1,5 +1,21 @@
i think it would be useful to have a fourth kind of [[special remote]]s that connects to a dumb storage using sftp or rsync. this can be emulated by using sshfs, but that means lots of round-trips through the system and is limited to platforms where sshfs is available.
i think it would be useful to have a fourth kind of [[special remote]]s
that connects to a dumb storage using sftp or rsync. this can be emulated
by using sshfs, but that means lots of round-trips through the system and
is limited to platforms where sshfs is available.
typical use cases are backups to storate shared between a group of people where each user only has limited access (sftp or rsync), when using [[bup]] is not an option.
typical use cases are backups to storate shared between a group of people
where each user only has limited access (sftp or rsync), when using [[bup]]
is not an option.
an alternative to implementing yet another special remote would be to have some kind of plugin system by which external programs can provide an interface to key-value stores (i'd implement the sftp backend myself, but haven't learned haskell yet).
an alternative to implementing yet another special remote would be to have
some kind of plugin system by which external programs can provide an
interface to key-value stores (i'd implement the sftp backend myself, but
haven't learned haskell yet).
> Ask and ye [[shall receive|special_remotes/rsync]].
>
> Sometimes I almost think that a generic configurable special remote that
> just uses configured shell commands would be useful.. But there's really
> no comparison with sitting down and writing code tuned to work with
> a given transport like rsync, when it comes to reliability and taking
> advantage of its abilities (like resuming). --[[Joey]]