[Chandler-dev] [App/Design teams please read] Uncommitted changes and background syncing

Morgen Sagen morgen at osafoundation.org
Mon Mar 27 16:14:59 PST 2006


I'm working on background syncing, and have much of it working now,  
but an issue has come up:  what to do about *uncommitted* changes  
that conflict with changes the new background syncing thread has  
committed.  For example, say I change the title of a calendar event  
(but that change has not been committed to the repository), and  
someone else changes the title of that same event and syncs their  
change to the server.  In the background, the sharing layer fetches  
the remote change and commits it to a private repository view.  What  
happens next is the OnIdle method in Application.py will do a refresh 
( ) on the main view which picks up that change and there will be a  
merge conflict; currently OnIdle doesn't handle conflicts, and an  
exception is raised.

The other related issue is when to make the user's changes available  
to the sharing layer.  When the user changes a field in the detail  
view, for example, there is no commit( ) performed on the main  
repository view and therefore the sharing layer doesn't yet see that  
change.  Only after a main view commit( ) happens can the sharing  
layer pick up the user's changes.

What should we do about these two issues?

~morgen


More information about the chandler-dev mailing list