You can use rdiff to update files, much like rsync does.
However, unlike rsync, rdiff puts you in control. There
are three steps to updating a file: signature, delta, and
patch.
DESCRIPTION
In every case where a filename must be specified, - may be used
instead to mean either standard input or standard output as
appropriate. Be aware that if you do this, you'll need to terminate your
options with -- or rdiff will think you are passing it
an empty option.
RETURN VALUE
0 for successful completion, 1 for environmental problems (file not
found, invalid options, IO error, etc), 2 for a corrupt file and 3 for
an internal error or unhandled situation in librsync or rdiff.