Dear Wiki user, You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.
The following page has been changed by BrianCandler: http://wiki.apache.org/couchdb/How_to_replicate_a_database The comment on the change is: Add info about resolving conflicts plus a small shell script ------------------------------------------------------------------------------ All nodes see the same conflict state and history, so any of them can resolve the conflict. - ''FIXME: How to resolve the conflict? Simply writing a new version of the document is not sufficient.'' + Nodes can continue to add new versions, but conflict remains: {{{ $ curl -X PUT -d '{"_rev":"2575525432","hello":"resolved"}' http://localhost:5001/sampledb/doc1 @@ -191, +191 @@ {"_id":"doc1","_rev":"923422654","hello":"resolved","_conflicts":["132006080"]} }}} + Once the application is satisfied that it has resolved the conflict, it simply has to DELETE the conflicting revision. Couch actually keeps a separate list of deleted conflict revisions that you can view with "deleted_conflicts=true" + + {{{ + $ curl -X DELETE http://127.0.0.1:5001/sampledb/doc1?rev=132006080 + {"ok":true,"id":"doc1","rev":"3699698383"} + $ curl http://127.0.0.1:5001/sampledb/doc1?conflicts=true + {"_id":"doc1","_rev":"804871722","hello":"resolved"} + $ curl http://127.0.0.1:5001/sampledb/doc1?deleted_conflicts=true + {"_id":"doc1","_rev":"804871722","hello":"resolved","_deleted_conflicts":["3699698383"]} + }}} + === Sample shell script === - Running this script gives an easy way to demonstrate replication behaviour. + Running this script gives an easy way to set up a replication conflict so you can examine it and resolve it. {{{ #!/bin/sh