[Chandler-dev] [App/Design teams please read] Uncommitted changes
and background syncing
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?
More information about the chandler-dev