Synchronization (was "Other bad ideas...")

Synchronization (was "Other bad ideas...")

I want a cross-platform data sync system that apps can plug in to, to carry your data from machine to machine as you go throughout your day. Most people with computers actually have two computers -- the one at home and the one at work. I'm one of those people (also I have a laptop). I want to be able to take it with me.

I suspect the Mozilla Foundation is best poised to do this because:

So here's a hackish (but possibly workable) proposal: implement such a system as a layer on top of Subversion.

Subversion contains all the logic and semantics needed for conflict resolution and merging. The simplest implementation would be:

This has its upsides:

It also has its downsides:

I admit this is a bit of a hack, but it's worth asking why people keep reinventing wheels.

Follow-up:

One person pointed out that Subversion doesn't take that much space (either for the repository or the local data). This is probably true in any real sense (the average user's repository will be smaller than one mp3).

As a couple people pointed out, Apple has this in .Mac sync. However, Apple's solution some serious downsides:

Someone rightly pointed out that svn takes care of syncing text files and well-known-data, but doesn't deal with things like merging Word docs. I can live with that, but I'm guessing it's something people could add if the sync architecture allowed for plugins for different apps and data types (since svn would notify of conflicts). I think the right approach is to start with a limited but extensible set (e.g. the Mozilla apps), and worry about harder problems (e.g. MS Word docs) in the second phase and extensions.

A couple people suggested ways to shrink the history/backup. None of the suggestions so far are particularly pretty (see the Subversion FAQ for more on this).

And yes, I've now seen the SEE/RSS proposal.

[bookmark]