ソースを参照

Merge pull request #43 from tsloughter/seen

if already seen dep before don't try handling it again
pull/44/head
Fred Hebert 10年前
コミット
d5907ad9b9
1個のファイルの変更27行の追加22行の削除
  1. +27
    -22
      src/rebar_prv_install_deps.erl

+ 27
- 22
src/rebar_prv_install_deps.erl ファイルの表示

@ -187,28 +187,33 @@ package_to_app(DepsDir, Packages, {Name, Vsn}) ->
update_src_deps(Level, SrcDeps, PkgDeps, SrcApps, State, Update, Seen) ->
case lists:foldl(fun(AppInfo, {SrcDepsAcc, PkgDepsAcc, SrcAppsAcc, StateAcc, SeenAcc}) ->
%% If not seen, add to list of locks to write out
{SeenAcc1, StateAcc1} = maybe_lock(AppInfo, SeenAcc, StateAcc),
{SrcDepsAcc1, PkgDepsAcc1, SrcAppsAcc1, StateAcc2} =
case Update of
{true, UpdateName, UpdateLevel} ->
handle_update(AppInfo
,UpdateName
,UpdateLevel
,SrcDepsAcc
,PkgDepsAcc
,SrcAppsAcc
,Level
,StateAcc1);
_ ->
maybe_fetch(StateAcc, AppInfo, false, SeenAcc),
handle_dep(AppInfo
,SrcDepsAcc
,PkgDepsAcc
,SrcAppsAcc
,Level
,StateAcc1)
end,
{SrcDepsAcc1, PkgDepsAcc1, SrcAppsAcc1, StateAcc2, SeenAcc1}
case sets:is_element(rebar_app_info:name(AppInfo), SeenAcc) of
true ->
{SrcDepsAcc, PkgDepsAcc, SrcAppsAcc, StateAcc, SeenAcc};
false ->
{SeenAcc1, StateAcc1} = maybe_lock(AppInfo, SeenAcc, StateAcc),
{SrcDepsAcc1, PkgDepsAcc1, SrcAppsAcc1, StateAcc2} =
case Update of
{true, UpdateName, UpdateLevel} ->
handle_update(AppInfo
,UpdateName
,UpdateLevel
,SrcDepsAcc
,PkgDepsAcc
,SrcAppsAcc
,Level
,StateAcc1);
_ ->
maybe_fetch(StateAcc, AppInfo, false, SeenAcc),
handle_dep(AppInfo
,SrcDepsAcc
,PkgDepsAcc
,SrcAppsAcc
,Level
,StateAcc1)
end,
{SrcDepsAcc1, PkgDepsAcc1, SrcAppsAcc1, StateAcc2, SeenAcc1}
end
end, {[], PkgDeps, SrcApps, State, Seen}, SrcDeps) of
{[], NewPkgDeps, NewSrcApps, State1, Seen1} ->
{State1, NewSrcApps, NewPkgDeps, Seen1};

読み込み中…
キャンセル
保存