> My second concern is about fine-grained synchronization. Imagine you
> have a shared contact. You change its office number at work but your
> laptop hasn't enough time to synchronize it's changes before you turn
> it off. At home at your desktop you change the address. Now you have
> two different documents on your laptop and your desktop. Both have
> been changed, but the laptop's one doesn't reflect the change of the
> address and the desktop's one doesn't reflect the change of the office
> telephone number. So when synchronizing you have to decide manually
> which version to delete and you will lose either one or the other
> version.
>
couchdb deals with this by creating conflicts, so you never lose any
version. We have been thinking for a long time about how to resolve
conflicts in an easy way (for the user, it's very easy to do it from
code, but the difficult bit is about deciding which version to use), so
we might come up with something soon. But you shouldn't really be too
worried about it. In the worst case, the user would have 2 records for
the same contact and would have to merge manually
> --
> You received this message because you are subscribed to the Google Groups "Desktop CouchDB" group.
> To post to this group, send email to desktop...@googlegroups.com.
> To unsubscribe from this group, send email to desktop-couch...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/desktop-couchdb?hl=en.
>
>
Having worked on timestamp based conflict resolution using couch, I
could not agree more: avoid timestamps in any setting where replication
is happening, or you will regret it, it's not a good match for how
couchdb works. I agree that desktopcouch needs better support for
conflict resolution, so that applications using the destkop API have an
easier time detecting conflicts and resolving them either automatically,
or through user intervention.
I don't think there is such a thing as automatic an conflict resolution
that will work irrespective of what kind of document/application you're
working with, (fields might have dependencies between them) so I think
mostly, it's the right thing to do to leave it to the client to deal
with them however it sees fit.
--
eric casteleijn
https://code.launchpad.net/~thisfred
Canonical Ltd.