I am asking for advice about a problem that is likely familiar to many people on this forum. First, I have four large-ish directories of mostly plain text (well, emacs org-mode) files, each of which constitutes a separate “notebook” with a different focus: personal, gaming, computer, and work. Second, I have too many computers that are sporadically and haphazardly re-imaged with Debian variants, and I want to be able to edit these files with emacs and keep them in sync without too much suffering.
My current solution is four bare git repositories behind SSH at an IP address and distinct physical servers in my home. I configure each computer with the appropriate remotes and ssh keys. It is critical to partition these directories, so that, e.g., my work computer cannot read the personal (and gaming) notebooks at all.
This setup actually has all the features I want — simple, self-hosted, free software, partitioned — but is fairly high-suffering in terms of setting up a repository on each new computer and making many “noisy” meaningless commits just to sync. Questions follow:
- I am looking at the unison program with some envy. Does anyone have experience with it? Seems like I could continue to use SSH as transport and it is better tailored to this use-case than git.
- Is there a better (more automated?) way to abuse git as a content-addressable sync backend than using or scripting the porcelain?
- Am I missing some amazing sync daemon? I have had poor experiences with syncthing in the past and prefer manually resolving conflicts and hosting my own tools. But maybe it is great today! So, recommendations and thoughts about solving this problem with tools besides git and unison are quite welcome.
Also I have pretty much given up running operating systems that aren’t Debian or at least Debian-based and am (slowly) moving my entire collection of personal computers to MNT hardware, so maybe that helps narrow recommendations down somewhat.