anchor.diff:  
       %% Return the updated dirset as our result
       DirSet4.
  +
  +remember_cwd_subdir(Cwd, Subdirs) ->
  +    Store = fun(Dir, Dict) ->
  +                    case dict:find(Dir, Dict) of
  +                        error ->
  +                            ?DEBUG("Associate sub_dir ~s with ~s~n", [Dir, Cwd]),
  +                            dict:store(Dir, Cwd, Dict);
  +                        {ok, Existing} ->
  +                            ?ABORT("sub_dir ~s already associated with ~s~n",
  +                                   [Dir, Existing]),
  +                            Dict
  +                    end
  +            end,
  +    lists:foldl(Store, dict:new(), Subdirs).
   
   maybe_load_local_config(Dir, ParentConfig) ->
       %% We need to ensure we don't overwrite custom
  
positive.code:     FilterMissing = is_missing_plugin(Loaded),
      NotLoaded = [V || V <- Modules, FilterMissing(V)],
      {Loaded, NotLoaded}.
  
  is_missing_plugin(Loaded) ->
      fun(Mod) -> not lists:member(Mod, Loaded) end.
  
negative.code:     %% Find relevant sources in base_dir and plugin_dir
      Erls = string:join([atom_to_list(M)++"\\.erl" || M <- Modules], "|"),
      RE = "^" ++ Erls ++ "\$",
      BaseDir = get_plugin_base_dir(Cwd, SubdirAssoc),
      %% If a plugin is found both in base_dir and plugin_dir, the clash
      %% will provoke an error and we'll abort.
      Sources = rebar_utils:find_files(PluginDir, RE, false)
          ++ rebar_utils:find_files(BaseDir, RE, false),
  