federicoiosue / Omni-Notes

Open source note-taking application for Android
https://omninotes.app
GNU General Public License v3.0
2.69k stars 1.11k forks source link

Proposal for synchronization: Differential Synchronization #250

Open x86dev opened 8 years ago

x86dev commented 8 years ago

There is a really nice writeup of the "Differential Synchronization" algorithm, which would nicely fit for Omni Notes regarding synchronization across multiple devices:

https://neil.fraser.name/writing/sync/

x86dev commented 8 years ago

Here you can find a working demo (which is a mirror of the initial code which was hosted on Google code initially): https://github.com/plasticine/google-mobwrite

federicoiosue commented 8 years ago

Thanks for pointing me to that article, I'll try to find asap the time to give a look at that.

Currently Omni Notes just manages the synchronization between its internal state and the filesystem, demanding the connection with cloud storages to third-party apps.

ghost commented 7 years ago

Hi, how would you go about synchronizing Omni-Notes at this time? Are the notes stored in plain text or some kind of xml? I'm trying to get rid of Google, and if Omni-notes could be synced it would be perfect...

federicoiosue commented 7 years ago

Currently notes are moved to backup siply by copying database.

The beta version I'm working on backup instead single notes to JSON format (the same one used for the desktop counterpart here).

Synchronization anyhow is currently not implemented, I'm investigating on using a baas to offer an open-source unified cloud platform for users.

ghost commented 7 years ago

I've seen on the alpha version that it makes an automatic back-up, but doesn't delete the notes in the back up when you delete them in the app. If it did do that I would want to use it to sync between my devices, using some git contraption or something? Would it be possible to implement this backed-up note deletion? Maybe with some kind of recycle bin?

federicoiosue commented 7 years ago

That's an outdated version and it have many problems.

Maybe I followed the wrong approach but before changing it I'd like to build some robust testing environment to find issues with that.