anchor.diff:               {_, _, V, _} ->
                    V
            end,
  +    Co1 = checkout_to(Co),
  +    DepName = make_dep_name(Name, Co1),
  +    case get(DepName) of
  +        compiled ->
  +            ok;
  +        _ ->
  +            compile_dep(H)
  +    end,
  +    compile_deps(T).
  +
  +compile_dep(Dep) ->
  +    {Name, Repo} = name_and_repo(Dep),
  +    Co = case Repo of
  +             {_, _, V} ->
  +                 V;
  +             {_, _, V, _} ->
  +                 V
  +         end,
   
       %% branch/tag it should checkout to
       Co1 = checkout_to(Co),
  
positive.code:     exec(Cmd, ["checkout", Co1]),
      ok = file:set_cwd(Cwd),
  
      %% check dependencies of the dependency
      RebarFile = rebar_conf_file(dep_path(DepName)),
      do_clone_deps(deps(RebarFile)),
      do_clone_deps(T).
  
  erl_files(Dir) ->
      filelib:wildcard(filename:join([Dir, "*.erl"])).
  
negative.code:     do_clone_deps(T);
  do_clone_deps([H|T]) ->
      {Name, Repo} = name_and_repo(H),
      {_, _, Co} = case Repo of
                       V={_, _, _} ->
                           V;
                       {_Cmd, _Url, _Co, _} ->
                           {_Cmd, _Url, _Co}
                   end,
      Co1 = checkout_to(Co),
      DepName = make_dep_name(Name, Co1),
      case get(DepName) of
          cloned ->
              ok;
          _ ->
              clone_dep(H)
      end,
      do_clone_deps(T).
  
  clone_dep(Dep) ->
      {Name, Repo} = name_and_repo(Dep),
      {Cmd, Url, Co} = case Repo of
                           V={_, _, _} ->
                               V;
  