Unison (file synchronizer)
![]() Unison logo |
|
| Developer(s) | Benjamin C. Pierce |
|---|---|
| Stable release | 2.40.61 / January 2011 |
| Preview release | none at the moment / none at the moment |
| Development status | Not active, minor updates only[1] |
| Written in | Objective Caml |
| Operating system | Cross-platform |
| Type | File synchronization |
| License | GPL |
| Website | http://www.cis.upenn.edu/~bcpierce/unison/ |
Unison is a file synchronization program. It is used for synchronizing files between two directories, either on one computer, or between a computer and another storage device (e.g. another computer, or a removable disc). It runs on Unix-like operating systems (including Linux, Mac OS X, and Solaris) and Windows.
Contents |
[edit] Details
Unison allows the same version of files to be maintained on multiple computing devices. In other words, when two devices are synchronized, the user can be sure that the most current version of a file is available on both devices, regardless of where it was last modified.
- It runs on many operating systems, and can synchronize files across platforms, so that for instance a Windows laptop may be synchronized with a Unix server.
- It detects 'conflicts' where a file has been modified on both sources, and displays these to the user
- It communicates over the TCP/IP protocol so that any two machines with an internet connection can be synchronized. This also means that the data transferred can be secured by tunneling over an encrypted SSH connection.
- It uses the rsync algorithm developed by Andrew Tridgell. This algorithm transfers only the parts of a file that have changed, and so is faster than copying the whole file.
- It is designed to be robust in the event of a program or system crash or a communication failure.
- It is open-source.
- It is written in the Objective Caml language.
File synchronization tools such as Unison are similar to version control tools (git, CVS, Subversion, etc.), distributed filesystems (Coda, Lustre, etc.), and mirroring utilities (rsync, etc.), in that all these attempt to keep sets of files synchronized. However file synchronization tools can deal with modifications to both versions of the directory structure, without the overhead of version control.
[edit] Development status
Unison is no longer under active development. However as the original developers still use Unison, they occasionally release bug fixes, small improvements, and contribute patches.[1]
Support for Unison is provided by third parties for specific operating systems.
The latest stable version, as of April 2011, is 2.40.61. It is available as source code and precompiled binaries for Linux, Win32 and Mac OS X.
The original developers began focusing on a project called 'Harmony', which they considered a natural progression from Unison, to synchronize any hierarchical structure expressed in XML.[2] However, Harmony has been abandoned, and the developers are now focusing on the Boomerang project which creates 'lenses' for transforming string data.[3]
[edit] Known problem
- Unison may fail if the metadata about the files and folders to be replicated is larger than 16MB. This is normally only a problem for initial replications, when Unison transfers metadata about every single file and folder. On subsequent transfers, Unison only sends metadata about file and folder changes, which is normally relatively small.[4]
[edit] See also
[edit] References
- ^ a b Non-development status
- ^ http://www.seas.upenn.edu/~harmony/old/
- ^ http://www.seas.upenn.edu/~harmony/ Related projects - Harmony, Boomerang and Unison
- ^ http://groups.yahoo.com/group/unison-users/message/4501
[edit] External links
[edit] Advice on using Unison
- File synchronization
- Using Unison, by Philip Guo
- Setting up Unison for your mom (simplified setup guide), by Philip Guo
- All about Unison on one page - a page covering Unison, starting with theory and ending with many practical examples about its usage.
