I have a handful of devices, and am considering keeping them in sync with Unison.The devices are not running all the time, they are switched off a few hours per day, not necessarily at the same time. None of the devices is running 24 hours a day. So I need real peer-to-peer, for instance see how a change (marked as *) propagates from A to B,C,D even though none has been running during all syncs:A-on*   B-on    C-off   D-offA-on*   B-on*   C-off   D-offA-off*  B-on*   C-off   D-offA-off*  B-on*   C-on    D-offA-off*  B-on*   C-on*   D-offA-off*  B-off*  C-on*   D-offA-off*  B-off*  C-on*   D-onA-off*  B-off*  C-on*   D-on*Unfortunately, the Unison user manual recommends a star topology for more than 2 machines:Using Unison to Synchronize More Than Two Machines    Unison is designed for synchronizing pairs of replicas. However, it is possible to use it to keep larger groups of machines in sync by performing multiple pairwise synchronizations.If you need to do this, the most reliable way to set things up is to organize the machines into a star topology, with one machine designated as the hub and the rest as spokes, and with each spoke machine synchronizing only with the hub. The big advantage of the star topology is that it eliminates the possibility of confusing spurious conflicts arising from the fact that a separate archive is maintained by Unison for every pair of hosts that it synchronizes.Despite that, is there any way to achieve real peer-to-peer with Unison?
How to configure Unison for real peer-to-peer?
networking;rsync;synchronization;unison
I have always used Unison in a star topology to synchronise my four machines. The reason for this is that it is not a versioning file system (like git for example), but rather a synchronisation tool.If you do opt for a distributed topology (which you will have to set by creating a configuration file for each device and synchronising all), you will undoubtedly end up doing a large amount of manual conflict resolution, which will be grim. This will certainly be the case unless you make only extremely basic changes to the files on the system and only on one device at a time.So, suggestions:Rent a cheap virtual server with enough storage space for the data that you want to synchronise.Try the distributed topology and see whether it causes too many problems to be usable.