From 3ef7db59cbe819b53244f86d682b0065ccd9b82a Mon Sep 17 00:00:00 2001 From: Ben Ellis Date: Fri, 12 Aug 2011 20:14:17 -0400 Subject: Add support for checking out specific git commit --- src/rebar_deps.erl | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/rebar_deps.erl b/src/rebar_deps.erl index ac6add8..c35d14e 100644 --- a/src/rebar_deps.erl +++ b/src/rebar_deps.erl @@ -354,7 +354,10 @@ download_source(AppDir, {git, Url, {tag, Tag}}) -> [{cd, filename:dirname(AppDir)}]), rebar_utils:sh(?FMT("git checkout -q ~s", [Tag]), [{cd, AppDir}]); download_source(AppDir, {git, Url, Rev}) -> - download_source(AppDir, {git, Url, {branch, Rev}}); + ok = filelib:ensure_dir(AppDir), + rebar_utils:sh(?FMT("git clone -n ~s ~s", [Url, filename:basename(AppDir)]), + [{cd, filename:dirname(AppDir)}]), + rebar_utils:sh(?FMT("git checkout -q ~s", [Rev]), [{cd, AppDir}]); download_source(AppDir, {bzr, Url, Rev}) -> ok = filelib:ensure_dir(AppDir), rebar_utils:sh(?FMT("bzr branch -r ~s ~s ~s", @@ -396,8 +399,10 @@ update_source(AppDir, {git, _Url, {tag, Tag}}) -> ShOpts = [{cd, AppDir}], rebar_utils:sh("git fetch --tags origin", ShOpts), rebar_utils:sh(?FMT("git checkout -q ~s", [Tag]), ShOpts); -update_source(AppDir, {git, Url, Refspec}) -> - update_source(AppDir, {git, Url, {branch, Refspec}}); +update_source(AppDir, {git, _Url, Refspec}) -> + ShOpts = [{cd, AppDir}], + rebar_utils:sh("git fetch origin", ShOpts), + rebar_utils:sh(?FMT("git checkout -q ~s", [Refspec]), ShOpts); update_source(AppDir, {svn, _Url, Rev}) -> rebar_utils:sh(?FMT("svn up -r ~s", [Rev]), [{cd, AppDir}]); update_source(AppDir, {hg, _Url, Rev}) -> -- cgit v1.1