unison (no, not the news reader) has replaced rsync and ssync as my synchronization tool of choice.
Good Points:
- Runs on Mac OS X, Windows/Cygwin and Linux
- Is fast and efficient over SSH
- Has an interactive command mode for CLI use
- It has a Cocoa GUI (if you're brave and compile it with the right UISTYLE)
Bad Points:
- It is written in Objective Caml, which is one of the funkiest dependencies I've seen in a long while (but easier to install than darcs' Haskell)
- It installs badly (you're better off just dropping it in /bin/unison)
- If you don't put it in /bin/unison, it isn't smart enough to find its peer using $PATH over SSH
- It is incompatible between versions (2.12 won't talk to 2.10 or 2.9, which is a royal pain)