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-off A-on* B-on* C-off D-off A-off* B-on* C-off D-off A-off* B-on* C-on D-off A-off* B-on* C-on* D-off A-off* B-off* C-on* D-off A-off* B-off* C-on* D-on A-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?