March 5th, 2004 | Published in Uncategorized
Unison gets a big, fat “where have you been my whole life?” for making syncing directories between a laptop and a server a little easier than rsync, which I was using in the long-ago dark ages of up until about 3:30 this afternoon.
The thing with rsync, (as near as I’ve ever been able to wrap my head around it, and I’ll confess that this sort of thing involves a kind of blockstacking I’m just awful at) is that it doesn’t provide simultaneous reconciliation of two filesets: it syncs one over the other. That’s jim-dandy for backups (e.g. I’m getting ready to head out the door with the laptop, I better dump it to the server in case it gets run over by a bus), but not so hot for what I think of when I think “synchronize,” which means not having to remember which fileset is fresher point by point.
Unison, like rsync, can use ssh as a conduit, and it uses a URI-style syntax (ssh://server/directory).
Works (and often comes pre-built) for a scad of Unixen and also does Windows. The Debian Woody package is currently at version 2.9.1, which is (miraculously) the actual stable version of the project. It’s important, evidently, that the versions of Unison on each end of a sync match.
It doesn’t handle OS X resource forks, so for my purposes it’s going to be limited to syncing up my mostly-plain-text work folders. To build it, it also requires OCAML, which is available via fink (or Debian’s packages if you just can’t live with the prebuilt binary).
Mac people who want a binary without the pain of building it for themselves can feel free to drop me a line.