Yes, of course. That was exactly the point I was trying to make: it's a fundamentally hard problem.
> Git and it's way of handling trees of old commits is a decent place to start. It clearly isn't a final solution, but building on top of it seems like a worthwhile direction, at least to me.
That depends on what problem you want to solve. If you want to solve the general data-storage-in-the-cloud problem, then Git is fundamentally flawed because 1) one of the inescapable aspects of the problem is that the solution depends on the semantics of the data and 2) Git by design knows nothing about the semantics of the data.
I don't think using git itself directly would solve many of the hairy platform issues, because they are really outside the scope of what git itself tries to do.
There's also the complication that if you want a zero-knowledge approach to privacy (where server admins can't read your data OR your file/folder names) some new data structures need to be invented.
My thought would be to store some meta-data on devices about the current version of the file, and just check the remote server for a newer version before it's opened.