Zim

Comment 3 for bug 505847

Revision history for this message
Jaap Karssenberg (jaap.karssenberg) wrote :

For a moment I thought that putting "note" records into couchdb would automatically hook into the web interface for editing notes in ubuntu one, but seems that tomboy actually connects with ubunutu one using their own ReST interface. So not sure need to investigate.

As a more general we probably should look into a generic sync function (that also sync to other directories). Than using couchdb can build on that function. This is much like what TomBoy seems to do.

* Keep "last synced version" property, either sequential id or timestamp
* If there is a conflict because a page was modified in both places just move the oldest out of the way to a timestamped backup file - maybe prompt the user first.
* For bonus points the version control could be used to attempt merging changes in a sane way - but adds a lot of complexity to get it right.

If we can do this between directories we can mount remote filesystems (or have gio do it for us). Same framework would also work if you use couchdb records instead of files to sync to. Best way to implement this is to build the syncing on top of the notebook API, so implement syncing on the level of syncing between notebook objects. Then you write a storage backend for the couchdb API. So you could either natively run on couchdb, or (as I would prefer), sync between a couchdb driven notebook and a local copy.

In summary
* Implement basic syncing algorithm for Notebook objects
* Implement store subclass for couchdb
* Add GUI for syncing

P.S. of course you can already sync with ubuntu one using the shared directory...