unison (no, not the news reader) has replaced rsync and ssync as my synchronization tool of choice.

Good Points:

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)