Sync doesn't merge changes to item descriptions


#1

Hello, I have a small problem with the synchronization.

The following step-by-step instructions:

PC1:
(synchronization ESS = on)
Create Item A in Inbox

mobile-phone1:
(synchronisation ESS = on)
Item A is synchronized

PC1:
modify Item A - add some lines ABC

mobile-phone1 (without internet access):
modify Item A - add some other lines DEF
turn on internet
Synchronization is performed
The change of PC1 “add some lines ABC” disappears, it is only “add some other lines DEF” visible

I guess only the timestamp is compared and the newer item wins, the older modification is completely lost. If it is not possible automatically, a conflict warning should appear and both entries should be offered for manual correction.

(BTW: It is a very cool product - I love that I can encrypt my data before synchronization and it is completely offline / cloud-free. ESS is only an (very good) add-on with encryption before upload.)


#2

The latest timestamp does indeed win when it comes to the current merging strategy.

The assumptions are

  • the user doesn’t normally update the same property (description) on different devices in parallel (in between sync runs).
  • even if he does, he would still prefer the later version to persist

The reasons they were made is because they lead to a reasonable trade-off between functionality and the complexity of implementation.

Sometimes these assumptions turn out to be false, especially for the description field. But hopefully it’s rare enough.


#3

Okay,
I mention to add a note in the documentation so everybody has to know this limitation.

As second “security” factor I would suggest to insert a “last-successful-sync” date and time somewhere in the title-bar or somewhere I can see, that synchronization is up to date (best with date and time or a delta between now and last sync (for example 10 minutes ago)?


#4

Yes, the sync status indication is definitely needed. Sometimes the network connection is poor or missing and it’s possible to be unaware that sync isn’t running.