Skip to content

Instantly share code, notes, and snippets.

@davisp
Created August 19, 2011 20:12
Show Gist options
  • Save davisp/1157885 to your computer and use it in GitHub Desktop.
Save davisp/1157885 to your computer and use it in GitHub Desktop.
PreCommDict = dict:from_list(PreCommitFailures),
{_, _, Tr} = lists:foldl(fun(#doc{id=Id,revs={Pos, RevIds}},{RidRevs,RCommitResults,Acc}) ->
DocKey = {Id, {Pos, RevIds}},
case lists:keyfind(DocKey,1,RCommitResults) of
false ->
case dict:find(DocKey,PreCommDict) of
error ->
{_, GoodVal} = lists:keyfind(DocKey,1,RidRevs),
{lists:delete(DocKey,RidRevs), RCommitResults, [GoodVal | Acc]};
{ok, PCommFailVal} ->
{lists:delete(DocKey,RidRevs), RCommitResults, [PCommFailVal | Acc]}
end;
{_, CommitRes} ->
{
lists:delete(DocKey,RidRevs),
lists:keydelete(DocKey,1,RCommitResults),
[CommitRes | Acc]
}
end
end, {IdRevs, lists:reverse(CommitResults), []}, lists:reverse(Docs)),
{ok, Tr}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment