Volker Brand
My feedback
1 result found
-
2,220 votes
I wanted to provide an update on this in light of our recent major update to make backups work at the note level along with our new support for Google Drive. These were both major milestones on the way to support sync. Now that backups work at the note level, we plan to continue our work to build a sync solution that works across devices using cloud storage provides like Google Drive, Dropbox, and Box. The advantage to this approach is that we continue to have zero access to your note data. Everything lives on your device and your selected cloud storage provider. However, this also means the solution must be resilient to users modifying data in the cloud (intentional or not). We don't have an ETA yet, but this continues to be one of our highest priorities. We really appreciate your patience and feedback on this idea!
An error occurred while saving the comment Volker Brand supported this idea ·
don't try to rebuild a big solution like Evernote and so on, think easy, keep it simple, that's the charm of your Product.
Maybe do in a way like this:
At time of first saving of a new document, give every document an unique document id and build a hash over the document and sore it with the document in two values, as the "actual-hash" and "cloud-hash" value. (take care to use a function who can generate an unique ID asynchronous[offline] on different devices) take also care that the document name is a part of the document content, so if the name was change the hash changes also!
Now you have every information to decide if an document can be updated exor should better save as a new Version
after any saving of the document build a new hash over the document and store it as the actual-hash value, if the document is storing to the cloud then save the stored actual-hash as cloud-hash value to the file.
Syncing to the cloud-store:
direction "local -> cloud"
for all local documents try:
If the cloud is available and the local document ID is not existing on the cloud store, then copy the value actual-hash to cloud-hash and save the document on the cloud store.
else (If the cloud is available and the document ID is existing on the cloud store) check:
if the local document "actual-hash" == cloud document "actual-hash" -> document is in sync, do nothing
else if the local document "cloud-hash" == cloud document "actual-hash" -> do save local document to the cloud-store (write over the cloud file)
else ( the cloud document was changed by another device -> Migration conflict existing ->
generate a new document ID and store the document local and to the cloud with a Version Info(Date_Time_Info) attached to the document Name (if the local document name differs from the cloud document name, merge the Names and attach the Version Info)
direction cloud -> local:
for all cloud documents try:
if the cloud document ID is not existing on the local store, then copy and save the cloud document to the local store.
That's all, such a solution is simple and in case of an Migration conflict, the user can decide if she/he wants to merge the documents or not.
I hope you will read this and think about it, maybe you did it already.