Follow

@codewiz do you have any recommendations for keeping files in sync between multiple servers? syncthing, git-annex, something else? Choice overload: wiki.archlinux.org/index.php/S

@racuna @jeeves I wouldn't exactly recommend it, but I've been using Unison for ~10 years, and I don't know anything that could replace it for syncing large folders between multiple devices. My ~/Pictures is 24GB and syncs in seconds if there are no changes.
cis.upenn.edu/~bcpierce/unison

@codewiz @jeeves @racuna Unison is great. I used it for my Sansa Clip Zip running Rockbox.

Syncthing is good if you're dealing with Windows or Android.

git-annex is great if you don't mind manually unlocking files when you want to change them or can spare 2x the space.

Nextcloud is good if you want to support multiple people.

Unison is good if you want something like a 2-way version of rsync. Can also work with removable devices with some scripting.

@racuna @jeeves @codewiz You did say multiple *servers* which probably points to git-annex or Unison. Or if they're config files, Ansible.

@freakazoid @jeeves @racuna Unison would be awesome if only someone rewrote the whole thing in not OCaml... or at least redesigned a wire protocol that doesn't depend on which version of the OCaml compiler was used to build the unison binary :blobastonished:

@freakazoid @jeeves @racuna No kidding:

[email protected]:~% syncpics
Unison 2.51.2 (ocaml 4.07.1): Contacting server...
Fatal error: Received unexpected header from the server:
expected "Unison 2.51 with OCaml >= 4.01.2\n" but received "Unison 2.48\n\000\000\000\000\017",
which differs at "Unison 2.4".
This can happen because you have different versions of Unison
installed on the client and server machines, or because
your connection is failing and somebody is printing an error
message [...]

@codewiz @racuna @jeeves It's no different than all the code out there that uses the Pickle binary protocol, except that the OCaml serialization protocol is actually secure.

@freakazoid @racuna @codewiz Unison looks good for syncing between two machines, but maybe more of a pain to setup for 3+ machines.

After reading a lot about git-annex and syncthing today, I'm still undecided. syncthing seems more user friendly, but git-annex seems more configurable (e.g. can specify number of replicas for each repo, whereas syncthing always replicates everything to each repo from what I understand).

@codewiz still figuring that out I guess. Right now really all I need is backup, not file syncing, but I'm trying to think of a system that would work if I had multiple machines/servers and wanted the environment to feel the same/have the same data available across all of them. Maybe that goal doesn't really make sense, as if I have multiple machines they're probably all for different purposes. Or at least there are different kinds of data and I don't want everything synced across all devices

@jeeves Well, that's exactly the problem I've been dealing with for several years, and I settled on a combination of git, unison and cloud. It's not 100% automated, but it's good enough that I'm not looking for another solution.

The worst offenders are desktop apps that store user configuration (such as the email signature) alongside site-specific noise such as the last window size and position. Those produce a ton of merge conflicts and I end up reconfigurinng them to my linking manually.

Sign in to participate in the conversation
Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!