diff options
author | Alin Popa <alin.popa@gmail.com> | 2017-03-12 12:31:16 +0000 |
---|---|---|
committer | Alin Popa <alin.popa@gmail.com> | 2017-03-12 12:31:16 +0000 |
commit | 62a737766db4db04b05fa501df6dfd1401ce1f51 (patch) | |
tree | 09ac126c9bd1015da6244d58701ef2c42919f1ce | |
parent | 86e883b8d8d1d16487e245fff02eba8c83da2cdd (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.erl | 16 |
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) -> |