From d5103a445892e5d6f3d893a16637368765b112db Mon Sep 17 00:00:00 2001 From: Jaroslaw Blachnio Date: Tue, 8 Jul 2014 10:58:23 +0200 Subject: [PATCH 1/5] Fix git:branch bug when there is more than one branch with equal SHA-ID --- src/git.erl | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/git.erl b/src/git.erl index 6062353..a08f1df 100644 --- a/src/git.erl +++ b/src/git.erl @@ -160,8 +160,8 @@ branch(Repo) -> false -> Refs = refs(Repo), {value, {"HEAD", 'HEAD', H}, Refs2} = lists:keytake('HEAD', 2, Refs), - [B] = [ N || {N, T, C} <- Refs2, T == head, C == H ], - {ok, B}; + B = [ N || {N, T, C} <- Refs2, T == head, C == H ], + {ok, list_join(B, "; ")}; true -> detached end. @@ -366,3 +366,7 @@ oksh(Cmd, Opts) -> oksh(Cmd, Args, Opts) -> {ok, Rep} = sh(Cmd, Args, Opts), Rep. + +list_join([H], _Separator) -> H; +list_join([H | T], Separator) -> + [H | [[Separator, S] || S <- T]]. From 7a06a4b6227da935cd39fdba09e7c65f593cf587 Mon Sep 17 00:00:00 2001 From: Jaroslaw Blachnio Date: Tue, 8 Jul 2014 10:58:23 +0200 Subject: [PATCH 2/5] Fix git:branch bug when there is more than one branch with equal SHA-ID use generic string:join instead of specific list_join. --- src/git.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/git.erl b/src/git.erl index 6062353..1403bcb 100644 --- a/src/git.erl +++ b/src/git.erl @@ -160,8 +160,8 @@ branch(Repo) -> false -> Refs = refs(Repo), {value, {"HEAD", 'HEAD', H}, Refs2} = lists:keytake('HEAD', 2, Refs), - [B] = [ N || {N, T, C} <- Refs2, T == head, C == H ], - {ok, B}; + B = [ N || {N, T, C} <- Refs2, T == head, C == H ], + {ok, string:join(B, "; ")}; true -> detached end. From 65905a6149a25f5aec012e6144a589a372b6390a Mon Sep 17 00:00:00 2001 From: Jaroslaw Blachnio Date: Wed, 9 Jul 2014 14:12:35 +0200 Subject: [PATCH 3/5] Fix code to renturn just active (current) branch instead of list of all branches for current sha. --- src/git.erl | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/git.erl b/src/git.erl index 1403bcb..17d34b6 100644 --- a/src/git.erl +++ b/src/git.erl @@ -56,7 +56,7 @@ -import(git_utils, [fformat/2, strip/1, join/2]). --include_lib("erlsemver/include/semver.hrl"). +-include_lib("../deps/erlsemver/include/semver.hrl"). %% ============================================================================= %% @@ -158,10 +158,8 @@ remote_add_cmd(RemoteName, RepoURL) -> branch(Repo) -> case status_is_detached(Repo) of false -> - Refs = refs(Repo), - {value, {"HEAD", 'HEAD', H}, Refs2} = lists:keytake('HEAD', 2, Refs), - B = [ N || {N, T, C} <- Refs2, T == head, C == H ], - {ok, string:join(B, "; ")}; + {ok, B} = sh("git rev-parse --abbrev-ref HEAD", [{cd, Repo}]), + {ok, B--"\n"}; true -> detached end. From aa7bef0618030ebbd5c864f5b5e54281ca1783d9 Mon Sep 17 00:00:00 2001 From: Jaroslaw Blachnio Date: Wed, 9 Jul 2014 14:26:27 +0200 Subject: [PATCH 4/5] Update code to use existing functions for Branch string --- src/git.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/git.erl b/src/git.erl index 17d34b6..84f0c84 100644 --- a/src/git.erl +++ b/src/git.erl @@ -158,8 +158,8 @@ remote_add_cmd(RemoteName, RepoURL) -> branch(Repo) -> case status_is_detached(Repo) of false -> - {ok, B} = sh("git rev-parse --abbrev-ref HEAD", [{cd, Repo}]), - {ok, B--"\n"}; + B = strip(oksh("git rev-parse --abbrev-ref HEAD", [{cd, Repo}])), + {ok, B}; true -> detached end. From def3bf301f4f9350b7f4d90e4be116c6a32718b4 Mon Sep 17 00:00:00 2001 From: Jaroslaw Blachnio Date: Fri, 11 Jul 2014 11:38:27 +0200 Subject: [PATCH 5/5] Fix emarassing mistake with include_lib --- src/git.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/git.erl b/src/git.erl index 84f0c84..b3f7b3a 100644 --- a/src/git.erl +++ b/src/git.erl @@ -56,7 +56,7 @@ -import(git_utils, [fformat/2, strip/1, join/2]). --include_lib("../deps/erlsemver/include/semver.hrl"). +-include_lib("erlsemver/include/semver.hrl"). %% ============================================================================= %%