anchor.diff:      ok = filelib:ensure_dir(AppDir),
       rebar_utils:sh(?FMT("git clone -n ~s", [Url]), [], filename:dirname(AppDir)),
       rebar_utils:sh(?FMT("git checkout ~s", [Rev]), [], AppDir);
  +download_source(AppDir, {bzr, Url, Rev}) ->
  +    ok = filelib:ensure_dir(AppDir),
  +    rebar_utils:sh(?FMT("bzr branch -r ~s ~s ~s",
  +                        [Rev, Url, filename:basename(AppDir)]), [],
  +                   filename:dirname(AppDir));
   download_source(AppDir, {svn, Url, Rev}) ->
       ok = filelib:ensure_dir(AppDir),
       rebar_utils:sh(?FMT("svn checkout -r ~s ~s ~s",
  
positive.code: 
  required_scm_client_vsn(hg)  -> {1, 4};
  required_scm_client_vsn(git) -> {1, 6};
  required_scm_client_vsn(svn) -> {1, 6}.
  
  scm_client_vsn(hg) ->
      scm_client_vsn(os:find_executable(hg), " --version", "version (\\d+).(\\d+)");
  scm_client_vsn(git) ->
      scm_client_vsn(os:find_executable(git), " --version", "git version (\\d+).(\\d+)");
  scm_client_vsn(svn) ->
      scm_client_vsn(os:find_executable(svn), " --version", "svn, version (\\d+).(\\d+)");
  scm_client_vsn(_) ->
  
negative.code: %% Source helper functions
  %% ===================================================================
  
  source_engine_avail({Name, _, _})
    when Name == hg; Name == git; Name == svn; Name == bzr ->
      case scm_client_vsn(Name) >= required_scm_client_vsn(Name) of
          true ->
              true;
  