On 2008-04-01, at 17:16, Nicholas Clark wrote:
What's hateful about rsync?
Unless someone has done a complete rewrite from scratch in the past
couple of years...
The protocol is a horrible mishmash. The only spec is the code.
There isn't (or wasn't) any stream mode, so you can't use the
equivalent of "rsync ... - | ssh foo rsync -", instead you have magic
syntax to specify rsh/ssh connections and environment variables to
feed stuff through.
When you need to make up new file syntax with : and :: for a UNIX
program that's in the end talking over a single stream, then
something's fundamentally wrong.
There's all kinds of weirdness that makes it a pain to implement on
file systems that don't look a lot like UFS... for example like the
file ID in stream is the inode number, and on HFS the data and
resource forks of the file have the same inode number, so getting to
to behave acceptably on OS X was a right pain. I don't recall the
problems I was having when I was using it between a Tru64 box using
AdvFS and a FreeBSD box using a NetApp with WAFL as the storage...
but they weren't pleasant there either.
It's got too many options for dealing with symlinks, none of which
ever seem to be what I want to do.
I've forgotten a lot of the other hate, because I haven't had to push
the envelope with it in a while. I don't want to try and recall it.