43 Folders

Back to Work

Merlin’s weekly podcast with Dan Benjamin. We talk about creativity, independence, and making things you love.

Join us via RSS, iTunes, or at 5by5.tv.

”What’s 43 Folders?”
43Folders.com is Merlin Mann’s website about finding the time and attention to do your best creative work.

Geek Throwdown: How to sync two or more Macs?

Enter the Octagon

Here’s an experimental new feature: The Throwdown. Take a problem that lots of people face and tell us your personal favorite way to deal with it — in as much detail and with as much persuasion as you can muster.

Today, a lot of us are living on two or more Macs -- which is great, except for the challenge of keeping the contents and settings of multiple machines effortlessly in sync.

Now before you pop in, holler "dot mac," and jump back on your Segway®, consider that many folks (including your author) are looking for a lot more than simple document syncing and perfunctory preference sharing. How about if your needs are more nuanced:

  • Can it intelligently sync "~/Library" stuff like "Preferences" and "Application Support" for your apps (so that Quicksilver, for example, is with you and tweaked to perfection wherever you go)? Is it smart enough to know which items not to sync?
  • Can it do smarter comparisons than "which one is newer?" -- consider that someone on 4 or 5 Macs may run into complex versioning problems that currently make .Mac very confused. For text, can it do diff3-style merging?
  • Will it update often enough (and automatically enough) that I can trust when I sit down at a new machine, I'll know everything's up to date without checking (or manual re-updating)?
  • Can backups be easily automated? And is it easy to restore across all machines?
  • Does it work for people on airplanes? If your solution requires a live internet connection for active usage (e.g. traditional WebDAV), what happens when that access is no longer available?

You get the idea. You have a system; now tell us about it. Bow to your sensei, then spare no detail.

How do you sync your Macs?

rsync? ChronoSync? Synchronize? Unison? Something you made yourself?

What are using to sync your Macs, and how are you using it?

algal's picture

subversion (SVN) is a poor choice for generic synching

I have used subversion for years. It's great for automated backup and synching of a tightly integrated group of files that don't change too much, like all the files in a coding project. But it's a bad choice for general synching because of its fussy handling of file creation/deletion and because of its incompatibilities with subtleties of the OSX file system. There are three main problems:

1) SVN requires special workflow for adding and deleting files.

As long as you're only modifying files in a predefined set, SVN requires little handholding. You just do an "update" command at the beginning of your work session and a "commit" command at the end. But if you want to create a new file, or delete an old one, it is not enough to create or delete it in the Finder. You need to issue an explicit "add" or "delete" command to subversion. The same is true every time you create or delete a directory.

2) SVN isn't aware of bundles.

The last issue becomes a real pain when you also consider that SVN is unaware of file bundles. A lot of files in OS X are in fact directories, which the Finder presents as a single file. But SVN just sees it as a directory. So what happens when a file within the pseudo-file bundle is created or deleted? Then SVN requires you to go inside the file bundle and do the explicit add or delete command on the files within. This is a common problem with apps like OmniOutliner, that use file bundles for their document format.

The workaround is to always compress the bundle into a zip file or a dmg, and then handle that through SVN, but this is a nuisance.

3) SVN obliterates metadata

SVN was designed for a standard unix filesystem like ext2, and so it loses a lot of the metadata that is unique to the HFS+ filesystem used by OS X -- extended attributes (used by apps like Skim.app), resource forks (I think), ACL's, etc.. This isn't always a big deal. But it's one more thing to worry about.




An Oblique Strategy:
Honor thy error as a hidden intention


Subscribe with Google Reader

Subscribe on Netvibes

Add to Technorati Favorites

Subscribe on Pageflakes

Add RSS feed

The Podcast Feed


Merlin used to crank. He’s not cranking any more.

This is an essay about family, priorities, and Shakey’s Pizza, and it’s probably the best thing he’s written. »

Scared Shitless

Merlin’s scared. You’re scared. Everybody is scared.

This is the video of Merlin’s keynote at Webstock 2011. The one where he cried. You should watch it. »