summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--files/couch-doc-diff17
1 files changed, 16 insertions, 1 deletions
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)