5 ms·
Wouldn't building a sync on top of something like git simplify the whole process?
by lpgauth 17y ago
Wouldn't building a sync on top of something like git simplify the whole process?
- RossM 17y agoInteresting idea, I think most of them allow at least some versioning - whether it's accessible by the user is another story. 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.
- rarrrrrr 17y agoYes, there are plenty of concepts from git that are useful (like tracking changes to content, rather than files.) 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.
- eru 17y agoSee "Cryptree: A Folder Tree Structure for Cryptographic File Systems" by Grolimund et al. at http://www.dcg.ethz.ch/publications/srds06.pdf http://www.dcg.ethz.ch/publications/srds06.pdf
- rarrrrrr 17y agoInteresting. The design is somewhat similar to how SpiderOak works. They were both created at about the same time, it seems.
- defen 17y agoThe problem is that not every change can be auto-merged, and a "normal" user does not want to deal with resolving merge conflicts. Binary file formats present another problem - imagine trying to merge two different changes to the same image or Word document.
- lisper 17y agoIt's actually even worse than that. Even plain text files can cause problems. You make a change to a file over here, then you delete the file over there. What should be the result of the merge? There are an infinite number of such screw cases because the "right answer" depends on the semantics of the data. For example: you add a line to a file over here, then you add the same line to the same file in the same location over there. What should be the result of the merge? Should you end up with one extra line or two? What if one line has an extra trailing space? What if it was an extra leading space and the file contains Python code?
- boryas 17y agoBut don't these problems exist regardless of your approach? 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.
- lisper 17y ago> But don't these problems exist regardless of your approach? 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.