From 064195dc5a90f5b0cc3ae92e8373671b0043033f Mon Sep 17 00:00:00 2001 From: Misha Gorodnitzky Date: Tue, 16 Nov 2010 01:25:14 +0000 Subject: [PATCH] Fix git tag and branch dependency handling Change git downloads and updates to not create branches and fix git tag handling. --- src/rebar_deps.erl | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/rebar_deps.erl b/src/rebar_deps.erl index 74c425f..a7baae9 100644 --- a/src/rebar_deps.erl +++ b/src/rebar_deps.erl @@ -278,11 +278,11 @@ download_source(AppDir, {hg, Url, Rev}) -> download_source(AppDir, {git, Url, {branch, Branch}}) -> ok = filelib:ensure_dir(AppDir), rebar_utils:sh(?FMT("git clone -n ~s ~s", [Url, filename:basename(AppDir)]), [], filename:dirname(AppDir)), - rebar_utils:sh(?FMT("git checkout ~s", [Branch]), [], AppDir); + rebar_utils:sh(?FMT("git checkout -q origin/~s", [Branch]), [], AppDir); download_source(AppDir, {git, Url, {tag, Tag}}) -> ok = filelib:ensure_dir(AppDir), rebar_utils:sh(?FMT("git clone -n ~s ~s", [Url, filename:basename(AppDir)]), [], filename:dirname(AppDir)), - rebar_utils:sh(?FMT("git checkout -b ~s", [Tag]), [], AppDir); + rebar_utils:sh(?FMT("git checkout -q ~s", [Tag]), [], AppDir); download_source(AppDir, {git, Url, Rev}) -> download_source(AppDir, {git, Url, {branch, Rev}}); download_source(AppDir, {bzr, Url, Rev}) -> @@ -303,10 +303,12 @@ update_source(Dep) -> Dep#dep.source), Dep. -update_source(AppDir, {git, _Url, {Type, Refspec}}) - when Type =:= branch orelse - Type =:= tag -> - rebar_utils:sh(?FMT("git pull origin ~s", [Refspec]), [], AppDir); +update_source(AppDir, {git, _Url, {branch, Branch}}) -> + rebar_utils:sh(?FMT("git fetch origin", []), [], AppDir), + rebar_utils:sh(?FMT("git checkout -q origin/~s", [Branch]), [], AppDir); +update_source(AppDir, {git, _Url, {tag, Tag}}) -> + rebar_utils:sh(?FMT("git fetch --tags origin", []), [], AppDir), + rebar_utils:sh(?FMT("git checkout -q ~s", [Tag]), [], AppDir); update_source(AppDir, {git, Url, Refspec}) -> update_source(AppDir, {git, Url, {branch, Refspec}}); update_source(AppDir, {svn, _Url, Rev}) ->