This blog is highly personal, makes no attempt at being politically correct, will occasionaly offend your sensibility, and certainly does not represent the opinions of the people I work with or for.
Orbital-Hub and Unison

It's a stupid thing, but before last week I had never owned two laptops at the same time, and never really had to solve the problem of keeping some data sets in sync. By "datasets" I mean my address book (for individuals as well as companies), my credentials (more than 100 passwords and other access/encryption keys), and a bunch of highly precious and highly curated documentation/data folders, not to mention Nyx itself (my mind extension).

Obviously Orbital-Hub and the starship system work very well. Each starship (the Pascal equivalent of a github repo), nicely snapshots itself into any Galactica repository. Moreover, last week-end I actually made some updates in Orbital-Hub to replace the original synchronisation/mirroring between two Galactica repositories, by a non commutative "embedding" system, which essentially allows me to have a small Galactica repository on, say, a 20Gb thumb drive that is isomorphic to a subset of a larger global Galactica repository on, say, a 1TB drive).

The problem is that Orbital-Hub was never designed to allow the synchronisation of the same starship checked out in two different locations; something that Git does very well. This was not a problem on Lucille.v9 itself (since on .v9 each starship was checked out only once), but now I want some starships to be used on both .v9 and v10. I would use git to keep two instances of the same starship in sync, but git doesn't like it when a repository contains other git repositories as subfolders (some of my starships have several git repos in them). There was the possibility to modify Orbital-Hub itself, but I prefer not overloading it with features that have nothing to do with what it already does (snapshots and snapshot propagations).

There are many file system synchronisation tools (including nice distributed file systems) out there, but I needed one that (1) would not run as a background process, (2) would be painfully easy to use (from the command line), (3) would not need to use a remote cloud storage, (4) would work with mounted file systems, (5) would not cost me anything, (6) could possibly handle up to half a terabytes of data.

Introducing Unison. Unison will be keeping starships in sync between .v9 and .v10, while Orbital-Hub carries on managing the starship snapshots system and ensures that the snapshots are properly propagated between Galactica drives (all of them encrypted).

This was almost too easy :) No really, way too easy (^_^).

While being at it, special kudos to Syncthing. I would use it if I only wanted to keep .v9 and .v10 in sync over a network.