unison

Fork of Unison, a bi-directional file synchronization tool
git clone git://git.laack.co/unison.git
Log | Files | Refs | README | LICENSE

README.md (4460B)


      1 ![Unison](icons/unison.png)
      2 
      3 # Unison File Synchronizer
      4 
      5 ## Meta
      6 
      7 ***Please read this entire README and
      8 https://github.com/bcpierce00/unison/wiki/Reporting-Bugs-and-Feature-Requests
      9 before creating or commenting on a github issue.***
     10 
     11 ***TL;DR: Do not ask questions or ask for help in issues.  Upgrade to the latest release.***
     12 
     13 Please also read https://github.com/bcpierce00/unison/wiki before
     14 interacting with the issue tracker or asking for help.
     15 
     16 ## About
     17 
     18 Unison is a file-synchronization tool for POSIX-compliant systems
     19 (e.g. *BSD, GNU/Linux, macOS) and Windows.  It allows two replicas of a
     20 collection of files and directories to be stored on different hosts
     21 (or different disks on the same host), modified separately, and then
     22 brought up to date by propagating the changes in each replica to the
     23 other.
     24 
     25 Unison has been in use for over 20 years and many people use it to
     26 synchronize data they care about.
     27 
     28 Features:
     29 
     30  * Unison works across platforms, allowing you to synchronize a
     31    Windows laptop with a Unix server, for example.
     32 
     33  * Unlike simple mirroring or backup utilities, Unison can deal with
     34    updates to both replicas of a distributed directory
     35    structure. Updates that do not conflict can be propagated
     36    automatically. Conflicting updates are detected and displayed.
     37 
     38  * Unlike many network filesystems, Unison copies data so that
     39    already-synchronized data can be read and written while offline.
     40 
     41  * Unlike most distributed filesystems, Unison is a user-level program
     42    that simply uses normal systems calls: there is no need to modify
     43    the kernel, to have superuser privileges on either host, or to have
     44    a FUSE implementation.
     45 
     46  * Unison works between any pair of machines connected to the
     47    internet, typically communicating over ssh, but also directly over
     48    TCP.  It is careful with network bandwidth, and runs well over slow
     49    links. Transfers of small updates to large files are optimized using
     50    a compression protocol similar to rsync.
     51 
     52  * Unison is resilient to failure. It is careful to leave the replicas
     53    and its own private structures in a sensible state at all times,
     54    even in case of abnormal termination or communication failures.
     55 
     56  * Unison can run in "repeat" mode with a filesystem monitor, so that
     57    changes are synchronized soon after they happen.
     58 
     59  * Unison has a clear and precise specification.
     60 
     61  * Unison is Free; full source code is available under the GNU Public
     62    License, Version 3.
     63 
     64 ## Contributing
     65 
     66 Note that only a very small number of people are actively working on
     67 maintaining unison.  An estimate is 2.5 people and 0.1 Full-Time
     68 Equivalents.  This has a substantial impact on the handling of bug
     69 reports and enhancement reports.  Help in terms of high-quality bug
     70 reports, fixes, and proposed changes is very welcome.  Help in
     71 answering mailinglist questions is also welcome.  Please do not answer
     72 questions asked in the bug tracker, which is contrary to bug tracker
     73 usage guidance.
     74 
     75 See `CONTRIBUTING.md` for a longer discussion.
     76 
     77 ## Community
     78 
     79 Unison activity is now centered on the two [Unison
     80 mailinglists](https://github.com/bcpierce00/unison/wiki/Mailing-Lists)
     81 for discussion and [Unison's github
     82 page](https://github.com/bcpierce00/unison/) for code, issues and a
     83 wiki.
     84 
     85 The `unison-users@` list is appropriate for asking for help.  The
     86 `unison-hackers@` list is appropriate for discussions where
     87 participants might be reading source code in order to inform the
     88 discussion.
     89 
     90 A no-longer-maintained FAQ can be found at: the [old UPenn
     91 site](http://www.cis.upenn.edu/~bcpierce/unison).
     92 
     93 ## Getting Unison
     94 
     95 The Unison project provides Unison as source code.  Many packaging
     96 systems (including GNU/Linux distributions) provide binary packages of
     97 Unison.  Results from Continuous Integration builds, while performed
     98 for the purposes of testing, are available for use on a limited set of
     99 platforms.
    100 
    101 See the [top-level wiki
    102 page](https://github.com/bcpierce00/unison/wiki) for a variety of
    103 information, including how to access Unison documentation.
    104 
    105 See the [building instructions](INSTALL.md), or read the CI
    106 recipes.
    107 
    108 You should use the most recent formal release, or a newer version from
    109 git.  Earlier versions are no longer maintained, and bug reports are
    110 not accepted about these versions.  This is true even though many
    111 packaging systems (including GNU/Linux distributions) continue to have
    112 2.51 or even 2.48.  The master branch in git historically has been
    113 quite stable.