From adbe5e98e61855c71d73539fa8dba917a82b111a Mon Sep 17 00:00:00 2001 From: Azul Date: Mon, 16 Sep 2013 09:06:49 +0200 Subject: Improve couch doc diff (#3761) Both the couch document and the second paramter will be pretty printed before comparison so differences in spaces etc. do not matter. All keys starting with an underscore on the couch such as _id and _rev will be removed before the comparison - we assume we want to compare the real data, not the metadata about the document as we usually do not know or care about what the id and revision will be. --- files/couch-doc-diff | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/files/couch-doc-diff b/files/couch-doc-diff index 5438eab..a5907d5 100644 --- a/files/couch-doc-diff +++ b/files/couch-doc-diff @@ -1,2 +1,17 @@ #!/bin/bash -diff -w <(curl -s --netrc-file /etc/couchdb/couchdb.netrc $1 ) <(echo $2) + +# Run a diff between a couch document specified as the first parameter +# and the second parameter. +# Diff returns 0 if there is no difference. This way you can tell the data +# is already on the couch. +# Both the couch document and the second paramter will be pretty printed +# before comparison so differences in spaces etc. do not matter. +# All keys starting with an underscore on the couch such as _id and _rev +# will be removed before the comparison - we assume we want to compare +# the real data, not the metadata about the document as we usually do not +# know or care about what the id and revision will be. + +curl -s --netrc-file /etc/couchdb/couchdb.netrc $1 \ + | python -mjson.tool \ + | grep -v '^\s*"_' \ + | diff -w - <(echo $2 | python -mjson.tool) -- cgit v1.2.3