Unison is a file-synchronization tool for Unix and Windows, written in OCaml. It allows two replicas of a collection of files and directories to be stored on different hosts, modified separately, and then brought up to date by propagating the changes in each replica to the other.
Unison offers several advantages over various synchronization methods such as CVS, Coda, rsync, Intellisync, etc. Unison can run on and synchronize between Windows and many UNIX platforms. Unison can synchronize changes to files and directories in both directions, on the same machine, or across a network using ssh or a direct socket connection.