You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by be...@apache.org on 2014/07/13 14:37:11 UTC
[1/2] couch-replicator commit: updated refs/heads/1994-merge-rcouch
to f594318
Repository: couchdb-couch-replicator
Updated Branches:
refs/heads/1994-merge-rcouch e56dccf0b -> f594318ee
don't replicate removed document in a view changes
Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/commit/04b6a2c6
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/tree/04b6a2c6
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/diff/04b6a2c6
Branch: refs/heads/1994-merge-rcouch
Commit: 04b6a2c643656349604144339935b979b86a150d
Parents: e56dccf
Author: benoitc <bc...@gmail.com>
Authored: Thu Jul 3 13:08:34 2014 +0200
Committer: benoitc <bc...@gmail.com>
Committed: Thu Jul 3 13:08:34 2014 +0200
----------------------------------------------------------------------
src/couch_replicator.erl | 6 ++++--
src/couch_replicator_api_wrap.erl | 20 ++++++++++++++------
src/couch_replicator_worker.erl | 15 +++++++++------
3 files changed, 27 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/blob/04b6a2c6/src/couch_replicator.erl
----------------------------------------------------------------------
diff --git a/src/couch_replicator.erl b/src/couch_replicator.erl
index 10aaf37..b9471a9 100644
--- a/src/couch_replicator.erl
+++ b/src/couch_replicator.erl
@@ -635,8 +635,10 @@ spawn_changes_reader(StartSeq, Db, ChangesQueue, Options) ->
read_changes(StartSeq, Db, ChangesQueue, Options) ->
try
- couch_replicator_api_wrap:changes_since(Db, all_docs, StartSeq,
- fun(#doc_info{high_seq = Seq, id = Id} = DocInfo) ->
+ couch_replicator_api_wrap:changes_since(Db, all_docs, StartSeq, fun
+ (#doc_info{high_seq = Seq, revs = []}) ->
+ put(last_seq, Seq);
+ (#doc_info{high_seq = Seq, id = Id} = DocInfo) ->
case Id of
<<>> ->
% Previous CouchDB releases had a bug which allowed a doc
http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/blob/04b6a2c6/src/couch_replicator_api_wrap.erl
----------------------------------------------------------------------
diff --git a/src/couch_replicator_api_wrap.erl b/src/couch_replicator_api_wrap.erl
index 1e0e660..5508179 100644
--- a/src/couch_replicator_api_wrap.erl
+++ b/src/couch_replicator_api_wrap.erl
@@ -810,12 +810,20 @@ parse_changes_line(object_start, UserFun) ->
end.
json_to_doc_info({Props}) ->
- RevsInfo = lists:map(
- fun({Change}) ->
- Rev = couch_doc:parse_rev(get_value(<<"rev">>, Change)),
- Del = (true =:= get_value(<<"deleted">>, Change)),
- #rev_info{rev=Rev, deleted=Del}
- end, get_value(<<"changes">>, Props)),
+ RevsInfo0 = lists:map(fun({Change}) ->
+ Rev = couch_doc:parse_rev(get_value(<<"rev">>, Change)),
+ Del = (true =:= get_value(<<"deleted">>, Change)),
+ #rev_info{rev=Rev, deleted=Del}
+ end, get_value(<<"changes">>, Props)),
+
+ RevsInfo = case get_value(<<"removed">>, Props) of
+ true ->
+ [_ | RevsInfo1] = RevsInfo0,
+ RevsInfo1;
+ _ ->
+ RevsInfo0
+ end,
+
#doc_info{
id = get_value(<<"id">>, Props),
high_seq = get_value(<<"seq">>, Props),
http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/blob/04b6a2c6/src/couch_replicator_worker.erl
----------------------------------------------------------------------
diff --git a/src/couch_replicator_worker.erl b/src/couch_replicator_worker.erl
index 0f65900..6fca26a 100644
--- a/src/couch_replicator_worker.erl
+++ b/src/couch_replicator_worker.erl
@@ -486,12 +486,15 @@ flush_doc(Target, #doc{id = Id, revs = {Pos, [RevId | _]}} = Doc) ->
find_missing(DocInfos, Target) ->
- {IdRevs, AllRevsCount} = lists:foldr(
- fun(#doc_info{id = Id, revs = RevsInfo}, {IdRevAcc, CountAcc}) ->
- Revs = [Rev || #rev_info{rev = Rev} <- RevsInfo],
- {[{Id, Revs} | IdRevAcc], CountAcc + length(Revs)}
- end,
- {[], 0}, DocInfos),
+ {IdRevs, AllRevsCount} = lists:foldr(fun
+ (#doc_info{revs = []}, {IdRevAcc, CountAcc}) ->
+ {IdRevAcc, CountAcc};
+ (#doc_info{id = Id, revs = RevsInfo}, {IdRevAcc, CountAcc}) ->
+ Revs = [Rev || #rev_info{rev = Rev} <- RevsInfo],
+ {[{Id, Revs} | IdRevAcc], CountAcc + length(Revs)}
+ end, {[], 0}, DocInfos),
+
+
{ok, Missing} = couch_replicator_api_wrap:get_missing_revs(Target, IdRevs),
MissingRevsCount = lists:foldl(
fun({_Id, MissingRevs, _PAs}, Acc) -> Acc + length(MissingRevs) end,
[2/2] couch-replicator commit: updated refs/heads/1994-merge-rcouch
to f594318
Posted by be...@apache.org.
when the key is removed don't get anything.
Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/commit/f594318e
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/tree/f594318e
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/diff/f594318e
Branch: refs/heads/1994-merge-rcouch
Commit: f594318eea9825a03dd263ff9fd4bb111420eb61
Parents: 04b6a2c
Author: benoitc <bc...@gmail.com>
Authored: Thu Jul 3 20:40:47 2014 +0200
Committer: benoitc <bc...@gmail.com>
Committed: Thu Jul 3 20:40:47 2014 +0200
----------------------------------------------------------------------
src/couch_replicator_api_wrap.erl | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-couch-replicator/blob/f594318e/src/couch_replicator_api_wrap.erl
----------------------------------------------------------------------
diff --git a/src/couch_replicator_api_wrap.erl b/src/couch_replicator_api_wrap.erl
index 5508179..b7b4b86 100644
--- a/src/couch_replicator_api_wrap.erl
+++ b/src/couch_replicator_api_wrap.erl
@@ -817,11 +817,8 @@ json_to_doc_info({Props}) ->
end, get_value(<<"changes">>, Props)),
RevsInfo = case get_value(<<"removed">>, Props) of
- true ->
- [_ | RevsInfo1] = RevsInfo0,
- RevsInfo1;
- _ ->
- RevsInfo0
+ true -> [];
+ _ -> RevsInfo0
end,
#doc_info{