couchdb-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rnew...@apache.org
Subject svn commit: r1104475 - in /couchdb/branches/1.1.x: share/www/script/test/replication.js src/couchdb/couch_rep_writer.erl
Date Tue, 17 May 2011 19:13:42 GMT
Author: rnewson
Date: Tue May 17 19:13:42 2011
New Revision: 1104475

URL: http://svn.apache.org/viewvc?rev=1104475&view=rev
Log:
port Filipe's fix and test for COUCHDB-885 to 1.1.x

Modified:
    couchdb/branches/1.1.x/share/www/script/test/replication.js
    couchdb/branches/1.1.x/src/couchdb/couch_rep_writer.erl

Modified: couchdb/branches/1.1.x/share/www/script/test/replication.js
URL: http://svn.apache.org/viewvc/couchdb/branches/1.1.x/share/www/script/test/replication.js?rev=1104475&r1=1104474&r2=1104475&view=diff
==============================================================================
--- couchdb/branches/1.1.x/share/www/script/test/replication.js (original)
+++ couchdb/branches/1.1.x/share/www/script/test/replication.js Tue May 17 19:13:42 2011
@@ -785,6 +785,62 @@ couchTests.replication = function(debug)
   TEquals('string', typeof repResult._local_id);
 
 
+  // COUCHDB-885 - push replication of a doc with attachment causes a
+ //  conflict in the target.
+  dbA = new CouchDB("test_suite_db_a");
+  dbB = new CouchDB("test_suite_db_b");
+
+  dbA.deleteDb();
+  dbA.createDb();
+  dbB.deleteDb();
+  dbB.createDb();
+
+  var doc = {
+    _id: "doc1"
+  };
+  TEquals(true, dbA.save(doc).ok);
+
+  repResult = CouchDB.replicate(
+    dbA.name,
+    CouchDB.protocol + host + "/" + dbB.name
+  );
+  TEquals(true, repResult.ok);
+  TEquals(true, repResult.history instanceof Array);
+  TEquals(1, repResult.history.length);
+  TEquals(1, repResult.history[0].docs_written);
+  TEquals(1, repResult.history[0].docs_read);
+  TEquals(0, repResult.history[0].doc_write_failures);
+
+  doc["_attachments"] = {
+    "hello.txt": {
+      "content_type": "text/plain",
+      "data": "aGVsbG8gd29ybGQ="  // base64:encode("hello world")
+    },
+    "foo.dat": {
+      "content_type": "not/compressible",
+      "data": "aSBhbSBub3QgZ3ppcGVk"  // base64:encode("i am not gziped")
+    }
+  };
+
+  TEquals(true, dbA.save(doc).ok);
+  repResult = CouchDB.replicate(
+    dbA.name,
+    CouchDB.protocol + host + "/" + dbB.name
+  );
+  TEquals(true, repResult.ok);
+  TEquals(true, repResult.history instanceof Array);
+  TEquals(2, repResult.history.length);
+  TEquals(1, repResult.history[0].docs_written);
+  TEquals(1, repResult.history[0].docs_read);
+  TEquals(0, repResult.history[0].doc_write_failures);
+
+  var copy = dbB.open(doc._id, {conflicts: true, deleted_conflicts: true});
+  T(copy !== null);
+  TEquals("undefined", typeof copy._conflicts);
+  TEquals("undefined", typeof copy._deleted_conflicts);
+  // end of test for COUCHDB-885
+
+
   // cleanup
   dbA.deleteDb();
   dbB.deleteDb();

Modified: couchdb/branches/1.1.x/src/couchdb/couch_rep_writer.erl
URL: http://svn.apache.org/viewvc/couchdb/branches/1.1.x/src/couchdb/couch_rep_writer.erl?rev=1104475&r1=1104474&r2=1104475&view=diff
==============================================================================
--- couchdb/branches/1.1.x/src/couchdb/couch_rep_writer.erl (original)
+++ couchdb/branches/1.1.x/src/couchdb/couch_rep_writer.erl Tue May 17 19:13:42 2011
@@ -64,7 +64,7 @@ write_bulk_docs(_Db, []) ->
     [];
 write_bulk_docs(#http_db{headers = Headers} = Db, Docs) ->
     JsonDocs = [
-        couch_doc:to_json_obj(Doc, [revs, att_gzip_length]) || Doc <- Docs
+        couch_doc:to_json_obj(Doc, [revs]) || Doc <- Docs
     ],
     Request = Db#http_db{
         resource = "_bulk_docs",
@@ -84,7 +84,7 @@ write_multi_part_doc(#http_db{headers=He
     JsonBytes = ?JSON_ENCODE(
         couch_doc:to_json_obj(
             Doc,
-            [follows, att_encoding_info, attachments]
+            [follows, att_encoding_info, attachments, revs]
         )
     ),
     Boundary = couch_uuids:random(),



Mime
View raw message