diff options
author | Bob Dionne <bob@cloudant.com> | 2012-08-07 12:42:36 -0400 |
---|---|---|
committer | Adam Kocoloski <adam@cloudant.com> | 2013-10-02 11:59:02 -0400 |
commit | 962ce087bfac80e2d721b679fee4fe1568a4d362 (patch) | |
tree | 691bd0b9d8f9d8c4862afe852619eeb1912b44a2 | |
parent | 82a103ba71e8ccc9efb24d97b763517978e63c22 (diff) | |
download | couchdb-962ce087bfac80e2d721b679fee4fe1568a4d362.tar.gz |
Use latest=true when retrieving revisions
This allows the replicator to keep up with revisions that may have
occured after missing_revs was called.
BugzID: 14241
-rw-r--r-- | src/couch_replicator/src/couch_replicator_api_wrap.erl | 2 | ||||
-rw-r--r-- | src/couch_replicator/src/couch_replicator_worker.erl | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/couch_replicator/src/couch_replicator_api_wrap.erl b/src/couch_replicator/src/couch_replicator_api_wrap.erl index 90cfa8e5a..cd69e590e 100644 --- a/src/couch_replicator/src/couch_replicator_api_wrap.erl +++ b/src/couch_replicator/src/couch_replicator_api_wrap.erl @@ -465,6 +465,8 @@ options_to_query_args([revs | Rest], Acc) -> options_to_query_args(Rest, [{"revs", "true"} | Acc]); options_to_query_args([{open_revs, all} | Rest], Acc) -> options_to_query_args(Rest, [{"open_revs", "all"} | Acc]); +options_to_query_args([latest | Rest], Acc) -> + options_to_query_args(Rest, [{"latest", "true"} | Acc]); options_to_query_args([{open_revs, Revs} | Rest], Acc) -> JsonRevs = ?b2l(?JSON_ENCODE(couch_doc:revs_to_strs(Revs))), options_to_query_args(Rest, [{"open_revs", JsonRevs} | Acc]). diff --git a/src/couch_replicator/src/couch_replicator_worker.erl b/src/couch_replicator/src/couch_replicator_worker.erl index e8a3570ba..d66d47805 100644 --- a/src/couch_replicator/src/couch_replicator_worker.erl +++ b/src/couch_replicator/src/couch_replicator_worker.erl @@ -296,13 +296,13 @@ spawn_doc_reader(Source, Target, FetchParams) -> fetch_doc(Source, {Id, Revs, PAs}, DocHandler, Acc) -> try couch_replicator_api_wrap:open_doc_revs( - Source, Id, Revs, [{atts_since, PAs}], DocHandler, Acc) + Source, Id, Revs, [{atts_since, PAs}, latest], DocHandler, Acc) catch throw:{missing_stub, _} -> ?LOG_ERROR("Retrying fetch and update of document `~s` due to out of " "sync attachment stubs. Missing revisions are: ~s", [Id, couch_doc:revs_to_strs(Revs)]), - couch_replicator_api_wrap:open_doc_revs(Source, Id, Revs, [], DocHandler, Acc) + couch_replicator_api_wrap:open_doc_revs(Source, Id, Revs, [latest], DocHandler, Acc) end. |