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?

tclancy's picture


I started using Subversion for this sort of thing (though not the exact same thing: my two Macs barely even know each other) after reading Martin Fowler on the subject a while back. It came in handy when I left my last job, to just dump a copy of my (PC) user folders onto a USB key and go.

  • Can it intelligently sync? Is it smart enough to know which items not to sync? That's what it's built to do. And there is an svn:ignore protocol baked-in. You'd have to set the ignores up manaually, though I bet they're stored in plain text in the .svn folders it makes in every folder it knows about-- which might be a deal-breaker for neatness freaks with hidden folders turned on, I suppose.
  • Can it do smarter comparisons . . . can it do diff3-style merging? Not sure what diff3 is, but this is what it's built to do. It will try to resolve commits from multiple places and will helpfully spit up when it can't (I think that's helpful anyway; I'd prefer it say it doesn't know rather than trying to munge stuff together).
  • Can backups be easily automated? It's command-line by default, so yes. You could have it commit and pull down as often as you like. Of course, if it runs into a conflict when it's running unattended, that's not so good. You can write hook scripts to have things happen either before or after stuff gets committed, but you would probably want your automation scripts to send you an email or something when they are unable to commit/ pull down from the repository.
  • Will it update often enough? I guess this would depend on how often you run it. Assuming no changes, it's only going to be a quick text file back and forth, so it wouldn't be a big deal to commit all the time, but that seems weird to me. Might just be because as a developer I only commit when I know what I have works. May not be relevant here.
  • Does it work for people on airplanes? Not to my mind. You could put the repository on your main laptop and that would "solve" the problem to a certain extent, but is this really an issue? You could sync right before take-off and right after landing.

After writing that, I realize some explanation of the Subversion model might be handy. The idea (and this all comes from source code control) is there is a "repository" somewhere in the sky (or on your laptop in the sky or on a regularly backed-up hard drive somewhere more sensible) that holds The One True Copy of whatever it is we're working on. Everyone working on The Thing has a "working copy". You are free to modify the working copy in any way that pleases you, but usually you're adding/ editing files or folders under the tree. When you're done with your edits, you "commit back to the tree. Assuming nothing has happened to the files you changed, they go up. If there have been changes, you have to do an update first, which pulls down the new edits and tries to weave them together with yours. If it's unsuccessful, it tells you, allows you to open a diff tool and resolve the conflicts by hand or just say "Use mine"/ "Use the new file" and then you can commit.




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. »