SyncEvolution + change tracking

Bug #479110 reported by Patrick Ohly
26
This bug affects 4 people
Affects Status Importance Assigned to Milestone
evolution-couchdb
Fix Released
Medium
Rodrigo Moya
evolution-couchdb (Ubuntu)
Fix Released
Medium
Rodrigo Moya

Bug Description

I'm the developer of SyncEvolution (http://syncevolution.org). A user has reported a problem in private email which points towards evolution-couchdb as the root cause.

SyncEvolution uses the REV and LAST-MODIFIED properties to identify updated contacts resp. events and tasks. This was discussed on the Evolution hackers mailing list. The general consensus was that this is the right approach and that backends should support the necessary semantic (= fields updated automatically by backend each time a change is made). An implementation of new API calls is in the pipeline which will make it safe to edit items while a sync is running, based on this semantic. For details, see:
http://<email address hidden>/msg03029.html

According to the error messages encountered by the user, the evolution-couchdb address book does not support the REV property:
[ERROR] addressbook: contact entry without REV: 010cb345b24a0841e3ff478abeaa363f

This break syncs with SyncEvolution on Ubuntu 9.10 in the default configuration. SyncEvolution picks up the Couch DB address book as default, because it comes first in the list of configured address books (e_book_get_addressbooks()).

There are three solutions:
- support REV in the backend (best solution, would allow to synchronize against SyncML servers)
- change the order of address books so that the first listed address book is the normal, local one (only works for users who continue to keep their contacts there)
- blacklist the couchdb backend in SyncEvolution and tell users that it is not supported (undesirable, because once REV is supported, the backend would still be blacklisted)

I haven't checked this myself. I don't know whether calendars + LAST-MODIFIED are also affected.

Changed in evolution-couchdb:
assignee: nobody → Rodrigo Moya (rodrigo-moya)
status: New → Triaged
Revision history for this message
Davidiam (hectorjerezano) wrote :

Just to clarify;

change the order of address books so that the first listed address book is the normal, local one (only works for users who continue to keep their contacts there)

using gconf-editor en edit this
/apps/evolution/addressbook/sources

Revision history for this message
Patrick Ohly (patrick-ohly) wrote :

Running gconf-editor is one way of solving this. Manually choosing the local address book via SyncEvolution's "evolutionsource" property is another.

None of this is desirable. It should just work out-of-the-box.

Revision history for this message
Rodrigo Moya (rodrigo-moya) wrote :

I'll add the REV field, since we don't do anything special to have the U1 addressbook as the first one, it seems it's e-d-s API which does that. In fact, for me, it just added it at the end of the list, not at the beginning, so it seems to be added first when it's a new user and no other addressbook is present?

Anyway, will add the REV field, so what should it be, an integer which is just incremented for each update?

Revision history for this message
Patrick Ohly (patrick-ohly) wrote :

> I'll add the REV field, since we don't do anything special to have the U1 addressbook as the first one,
> it seems it's e-d-s API which does that.

I'm not entirely sure, but I think it is Evolution, not EDS, which creates the gconf entries and thus is responsible for the order of address books as shown in the GUI and seen by syncevolution.

> Anyway, will add the REV field, so what should it be, an integer which is just incremented for each update?

No, please follow the vCard 3.0 standard and use a date-time value. The time is important, otherwise it is too coarse.
http://tools.ietf.org/html/rfc2426#page-22

Will this go into a Ubuntu 9.10 update? Otherwise a different kind of workaround might still be needed for SyncEvolution users on that distro.

Revision history for this message
Trond Husoe (tr-huso) wrote :

I'm getting the same error - i believe:
[ERROR] addressbook: contact entry without REV: pas-id

I (believe) that I have the personal address book as the first one as suggested by Davidiam. It is on the top of the list so that's why I presume it is the first one.

dobey (dobey)
Changed in evolution-couchdb:
importance: Undecided → Medium
John Lenton (chipaca)
tags: added: desktop+ u1-lucid
tags: added: package
Changed in evolution-couchdb:
status: Triaged → In Progress
Revision history for this message
Rodrigo Moya (rodrigo-moya) wrote :

I've just committed a fix to GIT trunk, to add the REV field. This will hit Lucid soon, and hopefully our beta PPA for karmic

Changed in evolution-couchdb:
status: In Progress → Fix Committed
Changed in evolution-couchdb (Ubuntu):
status: New → In Progress
importance: Undecided → Medium
assignee: nobody → Rodrigo Moya (rodrigo-moya)
Changed in evolution-couchdb:
milestone: none → lucid-beta-2
Changed in evolution-couchdb (Ubuntu):
milestone: none → ubuntu-10.04-beta-2
Revision history for this message
Rodrigo Moya (rodrigo-moya) wrote :

Fixed and released in evolution-couchdb 0.4.4

Changed in evolution-couchdb:
status: Fix Committed → Fix Released
Changed in evolution-couchdb (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.