anchor.diff:                           | Caps]
                    end,
   
  -    J = {[{rev, vclock:count_changes(BucketVC) + RevServices},
  +    %% NOTE: that we're reading compat mode not from config snapshot
  +    %% we're given. So we can serve older config with newer compat
  +    %% mode. That should be ok under our assumption that compat mode
  +    %% never decreases.
  +    %%
  +    %% We're computing rev using config's global rev which allows us
  +    %% to track changes to node services and set of active nodes. But
  +    %% for mixed version clusters we want to be serving same revs as
  +    %% 3.0 nodes.
  +    Rev = case cluster_compat_mode:is_cluster_sherlock() of
  +              true ->
  +                  ns_config:compute_global_rev(Config);
  +              false ->
  +                  vclock:count_changes(BucketVC)
  +          end,
  +
  +    J = {[{rev, Rev},
             {name, BucketBin},
             {uri, <<"/pools/default/buckets/", BucketBin/binary, "?bucket_uuid=", UUID/binary>>},
             {streamingUri, <<"/pools/default/bucketsStreaming/", BucketBin/binary, "?bucket_uuid=", UUID/binary>>},
  
positive.code: 
  do_build_node_services() ->
      Config = ns_config:get(),
      {NEIs, _RevServices} = build_nodes_ext(ns_cluster_membership:active_nodes(Config),
                                             Config, 0, []),
      J = {[{nodesExt, NEIs}]},
      ejson:encode(J).
  
  terse_bucket_info_with_local_addr(BucketName, LocalAddr) ->
  
negative.code:            || Node <- Servers],
  
      AllServers = Servers ++ ordsets:subtract(ns_cluster_membership:active_nodes(Config), Servers),
      NEIs = build_nodes_ext(AllServers, Config, []),
  
      {_, UUID} = lists:keyfind(uuid, 1, BucketConfig),
  
  