Super Unison

For the past 3.5 yrs I’ve been using Unison to sync files between 3 macs. It works great. In fact, since I installed and set up my profiles for syncing, I’ve not needed to change a thing. Until yesterday.

I upgraded to El Capitan on each of the 3 macs.

I went to run Unison to sync the days work and – an error.

-bash: unison: command not found

Oh dear. I looked in the search path and couldn’t find Unison. My guess is that it got erased during the upgrade (not sure what the problem is). So I re-installed, no big deal. Let’s face it, Unison has changed in those 3.5 years, so I’ll be getting the latest version.

You can get a nice compiled version from @alan_schmitt here. Version 2.48.15 runs on El Capitan. I always run Unison from the command line, but those tools can be installed from this GUI version.

I did this for all 3 macs and checked that Unison was installed by typing

unison -version

All good. I then ran each profile and… command not found. I realised that via ssh, the search path is not the same as via bash. Long story short. I added the following to my profile.

servercmd=/usr/local/bin/unison

Thank you to @alan_schmitt for the suggestion. This is actually a solution that is specified in the documentation. I thought I’d write this down in case it helps anybody.

Now my profile (syncimac.prf) looks like this

servercmd=/usr/local/bin/unison
root = /Users/name/Documents/
root = ssh://name@computername.home//Users/name/Documents/
times = true
log = false
ignore = Name .FBCIndex
ignore = Name .FBCLockFolder
ignore = Name {Cache*,.Trash*,.VolumeIcon.icns,.HSicon,Temporary*,.Temporary*,TheFindByContentFolder}
ignore = Name {TheVolumeSettingsFolder,.Metadata,.filler,.idsff,.Spotlight,.DS_Store,.CFUserTextEncoding}
ignore = Name .localized
ignore = Name .fseventsd
ignore = Path .unison

this is saved in ~/.unison/ and I invoke it by running

unison syncimac -ui text

On the first run it detected a Unicode change which I think is due to the new version of Unison. So I needed to ignore the old archives with the flag -ignorearchives. Then it’s fine to run again.

The post title is taken from “Super Unison” by Drive Like Jehu from their LP Yank Crime