The first example, will result into a document conflict because rev is not specified in the doc and the rev from the the url gets ignored. All other examples work. Note that the last example is a picture attachment that also does not contain a rev inside a binary file, why can this not be applied to json data too like in the first example.
curl -X PUT http://localhost:5984/_users/user%3Agert?rev=5xxx -H 'Content-Type: application/json' -d{ "_id" : "user:gert", "type" : "user", "name" : "gert", "roles" : [], "password_sha" : "", "salt" : "" }' curl -X PUT http://localhost:5984/_users/user%3Agert -H 'Content-Type: application/json' -d{ "_id" : "user:gert", "_rev":"5xxx", "type" : "user", "name" : "gert", "roles" : [], "password_sha" : "", "salt" : "" }' curl -X PUT http://localhost:5984/_users/user%3Agert/picture?rev=5xxx -H 'Content-Type: image/png' -d @picture.png On Thu, Sep 1, 2011 at 12:33 AM, Mark Hahn <[email protected]> wrote: > I guess I don't understand. All I can say is that in general you > cannot change the _rev of a doc. The rev includes a hash of the doc. > > If you want to make sure you don't get a conflict, then you will need > to first GET the old doc and use the _rev of that old doc. I do that > in a loop doing a PUT over and over until I get no conflict. Of > course it usually works on the first PUT and no GET is needed. > > On Wed, Aug 31, 2011 at 2:50 PM, Gert Cuykens <[email protected]> wrote: >> The app does not need to change the rev in the database, just the _rev >> that is in the PUT or POST data which is about to get send too the >> database. It already happens when adding attachments to couchdb >> preventing conflicts. It is only logic it does this for normal updates >> too when specified explicit in the url ignoring the _rev in the POST >> or PUT data. >> >> Now I need to parse the json files one by one to change the _rev >> inside the documents that need to get send. >> >> On Wed, Aug 31, 2011 at 9:00 PM, Mark Hahn <[email protected]> wrote: >>> The rev is used for replication. If the app could change a rev, >>> replication would break. >>> >>> On Wed, Aug 31, 2011 at 9:53 AM, Gert Cuykens <[email protected]> >>> wrote: >>>> I believe that PUT http://localhost:5984/db/mydoc?rev=1-x -d >>>> @newdoc.json should overwrite the _rev in the newdoc.json? Can you >>>> point me too the discussion why this has not been done pleas. >>>> >>> >> >
