On Do, 2010-11-11 at 14:52 +0000, Patrick Ohly wrote: > Hello! > > I have a question about matching items. Here's my situation: > * Client and server both have the same iCalendar 2.0 VEVENT (UID > is identical). > * SUMMARY is changed on server, one line is added to description. > * SUMMARY is changed on client. > * Slow sync. > > I had changed the "calendar" field list so that all fields have > compare="never", except for UID and ORIGSTART, which have > compare="always". The rationale is that if it is known that both sides > support UID, that alone should be used to find matches. > > What I expect in this case is that: > 1. Synthesis engine finds the match. > 2. The more recently modified SUMMARY from the client is preserved > (DMODIFIED = LAST-MODIFIED is marked as age="yes"). > 3. The additional line of the description is preserved (DESCRIPTION > has merge="lines"). > > What happens instead is that the engine finds the match, but then skips > merging the items and updating them on server and client, leaving them > unsynchronized. Is that the desired behavior? Do I have to configure the > engine differently?
Yes. Lukas told me that there are configuration options, and then I also found them in the documentation: 11.36.6 <updateclientinslowsync>: update client records during slowsync Contained in: <remoterule> or <server> (settings in <server> are defaults for sessions with- out a remote rule applied or with a remote rule applied that does not specify a value for this particular option) Can contain: boolean value Attributes: none Default: off If this option is set in a remoterule, the SyncML server will try to update client records with server data if comparison shows that the server has additional data that the client does not have during non-first time slow sync. Note that this updating always takes place in first-time sync, regardless of this options's setting. It is off by default because many clients cannot store some data but also cannot inform the server what they can store exactly, so turning this option on will cause much un- needed client updates at slow sync. For clients that store everything they report in devinf how- ever, this feature can be switched on resulting in better data consistency after a slow sync. See also corresponding function in 6.14.6. 11.36.7 <updateserverinslowsync>: update server records during slowsync Contained in: <remoterule> or <server> (settings in <server> are defaults for sessions with- out a remote rule applied or with a remote rule applied that does not specify a value for this particular option) Can contain: boolean value Attributes: none Default: off If this option is set in a remoterule, the SyncML server will try to update server records with cli- ent data if comparison shows that the client has additional data that the server does not have during non-first time slow sync. Note that this updating always takes place in first-time sync, regardless of this options's setting. It is off by default because differences in client and server database layouts often cause uneeded updates which will cause other clients to be updated on the next sync as well. For clients that store everything they report in devinf however, this feature can be switched on result- ing in better data consistency after a slow sync. See also corresponding function in 6.14.6. -- Best Regards, Patrick Ohly The content of this message is my personal opinion only and although I am an employee of Intel, the statements I make here in no way represent Intel's position on the issue, nor am I authorized to speak on behalf of Intel on this matter. _______________________________________________ os-libsynthesis mailing list os-libsynthesis@synthesis.ch http://lists.synthesis.ch/mailman/listinfo/os-libsynthesis