Unison is a file synchronizer i.e. it can efficiently synchronize (or copy) files or directories between remote hosts (works locally too). You might have heard about rsync which pioneered the algorithm used by unison for efficiently synchronizing content of 2 files. Without going into technical details, both rsync and unison try to send only the differences between the files. In many cases (especially for incremental backup) it saves a lot of network traffic and speeds up the operation. Unison offers 2 main advantages over rsync:
- works well on Windows. In order to run rsync on Windows you need to install cygwin which is a pain in itself. Additionally, rsync sometimes hangs during transfers. I experienced the hangs myself and other people reported it as well (although there are reports that the latest version of cygwin solves this problem). Unison has a native binary for Windows.
- rsync only offers one-way synchronization (i.e. copy) while unison does two-way synchronization i.e. it propagates changes between directories both ways.