summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlin Popa <alin.popa@gmail.com>2017-03-12 12:31:16 +0000
committerAlin Popa <alin.popa@gmail.com>2017-03-12 12:31:16 +0000
commit62a737766db4db04b05fa501df6dfd1401ce1f51 (patch)
tree09ac126c9bd1015da6244d58701ef2c42919f1ce
parent86e883b8d8d1d16487e245fff02eba8c83da2cdd (diff)
Fix git SHAs comparison for update.
86e883b8d8d1d16487e245fff02eba8c83da2cdd always returns the full length SHA, therefore when using a dependency having the short SHA, it'll always consider that the SHAs are different, hence it'll alway return true for .
-rw-r--r--src/rebar_git_resource.erl16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/rebar_git_resource.erl b/src/rebar_git_resource.erl
index 201b8b6..f666d17 100644
--- a/src/rebar_git_resource.erl
+++ b/src/rebar_git_resource.erl
@@ -53,24 +53,22 @@ needs_update(Dir, {git, Url, {branch, Branch}}) ->
needs_update(Dir, {git, Url, "master"}) ->
needs_update(Dir, {git, Url, {branch, "master"}});
needs_update(Dir, {git, _, Ref}) ->
- {ok, Current} = rebar_utils:sh(?FMT("git rev-parse -q HEAD", []),
+ {ok, Current} = rebar_utils:sh(?FMT("git rev-parse --short=7 -q HEAD", []),
[{cd, Dir}]),
Current1 = string:strip(string:strip(Current, both, $\n), both, $\r),
Ref2 = case Ref of
{ref, Ref1} ->
Length = length(Current1),
- if
- Length >= 7 ->
- lists:sublist(Ref1, Length);
- true ->
- Ref1
+ case Length >= 7 of
+ true -> lists:sublist(Ref1, Length);
+ false -> Ref1
end;
- Ref1 ->
- Ref1
+ _ ->
+ Ref
end,
- ?DEBUG("Comparing git ref ~s with ~s", [Ref1, Current1]),
+ ?DEBUG("Comparing git ref ~s with ~s", [Ref2, Current1]),
(Current1 =/= Ref2).
compare_url(Dir, Url) ->