anchor.diff:  
   source_engine_avail(Name, Source)
     when Name == hg; Name == git; Name == svn; Name == bzr ->
  -    case scm_client_vsn(Name) >= required_scm_client_vsn(Name) of
  +    case vcs_client_vsn(Name) >= required_vcs_client_vsn(Name) of
           true ->
               true;
           false ->
               ?ABORT("Rebar requires version ~p or higher of ~s to process ~p\n",
  -                   [required_scm_client_vsn(Name), Name, Source])
  -    end.
  -
  -scm_client_vsn(false, _VsnArg, _VsnRegex) ->
  +                   [required_vcs_client_vsn(Name), Name, Source])
  +    end.
  +
  +vcs_client_vsn(false, _VsnArg, _VsnRegex) ->
       false;
  -scm_client_vsn(Path, VsnArg, VsnRegex) ->
  +vcs_client_vsn(Path, VsnArg, VsnRegex) ->
       {ok, Info} = rebar_utils:sh(Path ++ VsnArg, [{env, [{"LANG", "C"}]},
                                                    {use_stdout, false}]),
       case re:run(Info, VsnRegex, [{capture, all_but_first, list}]) of
  
positive.code:             false
      end.
  
  required_scm_client_vsn(hg)  -> {1, 1};
  required_scm_client_vsn(git) -> {1, 5};
  required_scm_client_vsn(bzr) -> {2, 0};
  required_scm_client_vsn(svn) -> {1, 6}.
  
  scm_client_vsn(hg) ->
      scm_client_vsn(rebar_utils:find_executable("hg"), " --version",
                     "version (\\d+).(\\d+)");
  scm_client_vsn(git) ->
      scm_client_vsn(rebar_utils:find_executable("git"), " --version",
                     "git version (\\d+).(\\d+)");
  scm_client_vsn(bzr) ->
      scm_client_vsn(rebar_utils:find_executable("bzr"), " --version",
                     "Bazaar \\(bzr\\) (\\d+).(\\d+)");
  scm_client_vsn(svn) ->
      scm_client_vsn(rebar_utils:find_executable("svn"), " --version",
                     "svn, version (\\d+).(\\d+)").
  
  has_vcs_dir(git, Dir) ->
  
negative.code: has_vcs_dir(_, _) ->
      true.
  
  print_source(#dep{app=App, source=Source}) ->
      ?CONSOLE("~s~n", [format_source(App, Source)]).
  
  format_source(App, {git, Url}) ->
      ?FMT("~p BRANCH ~s ~s", [App, "HEAD", Url]);
  format_source(App, {git, Url, ""}) ->
      ?FMT("~p BRANCH ~s ~s", [App, "HEAD", Url]);
  format_source(App, {git, Url, {branch, Branch}}) ->
      ?FMT("~p BRANCH ~s ~s", [App, Branch, Url]);
  format_source(App, {git, Url, {tag, Tag}}) ->
      ?FMT("~p TAG ~s ~s", [App, Tag, Url]);
  format_source(App, {_, Url, Rev}) ->
      ?FMT("~p REV ~s ~s", [App, Rev, Url]);
  format_source(App, undefined) ->
      ?FMT("~p", [App]).
  