Last Updated on June 23, 2023
Unison has a good range of features.
It’s important to appreciate that Unison is not a replacement for a complete version control system. Instead, the software is a file synchronizer.
There are various actions you can apply such as propagating from left to right, or vice versa, instruct the software not to propagate files. You can also merge files.
Conflicts can be resolved in favor of the first root, the second root, most recently modified file, or oldest modified file.
- Sort by name, size, new entries first, and default ordering.
- The software deals with updates to both replicas of a distributed directory structure. Updates that do not conflict are propagated automatically. Conflicting updates are detected and displayed.
- Unison refuses to synchronize special files such as files stored in /dev/. It only understands ordinary files, directories, and symlinks.
- Unlike a distributed filesystem, Unison is a user-level program: there is no need to modify the kernel or to have superuser privileges on either host.
- Unison works between any pair of machines connected to the internet, communicating over either a direct socket link or tunneling over an encrypted ssh connection. It is careful with network bandwidth, and runs well over slow links. Transfers of small updates to large files are optimized using a compression protocol similar to rsync.
- Unison is resilient to failure. It’s careful to leave the replicas and its own private structures in a sensible state at all times, even in case of abnormal termination or communication failures. When Unison overwrites a file or directory by propagating a new version from the other replica, it can keep the old version around as a backup.
- Unison has a clear and precise specification.
- Cross-platform support – it works well under Linux, Mac OS X, Windows, and other operating systems.
For Unison to work, both the local and remote machines need the same version of Unison and OCam.