diff options
Diffstat (limited to '')
-rwxr-xr-x | git-base.sh | 6 | ||||
-rwxr-xr-x | test-commits.sh | 25 |
2 files changed, 29 insertions, 2 deletions
diff --git a/git-base.sh b/git-base.sh index cf67198..a110056 100755 --- a/git-base.sh +++ b/git-base.sh @@ -165,7 +165,8 @@ commits_ahead_of_remote() { remote_behind_of_master() { remote_branch=${1:-"$(remote_branch_name)"} - if [[ -n "$remote_branch" ]]; then + tracked_remote="origin/master" + if [[ -n "$remote_branch" && "$remote_branch" != "$tracked_remote" ]]; then set -- set -- $(git rev-list --left-right --count origin/master...${remote_branch}) behind=$1 @@ -179,7 +180,8 @@ remote_behind_of_master() { remote_ahead_of_master() { remote_branch=${1:-"$(remote_branch_name)"} - if [[ -n "$remote_branch" ]]; then + tracked_remote="origin/master" + if [[ -n "$remote_branch" && "$remote_branch" != "$tracked_remote" ]]; then set -- set -- $(git rev-list --left-right --count origin/master...${remote_branch}) behind=$1 diff --git a/test-commits.sh b/test-commits.sh index e3c945b..e1800aa 100755 --- a/test-commits.sh +++ b/test-commits.sh @@ -234,4 +234,29 @@ test_dont_call_remote_branch_name() { rm_tmp } +test_dont_remote_if_remote_is_master() { + cd_to_tmp + git init --quiet + + remote_branch="origin/master" + + debug_output="$( + { + set -x + output="$( + remote_behind_of_master "$remote_branch"; + remote_ahead_of_master "$remote_branch"; + )" + set +x + } 2>&1 + echo "$output" + )" + + usages="$(echo "$debug_output" | grep 'git rev-list' | wc -l )" + + assertEquals " 0" "$usages" + + rm_tmp +} + . ./shunit/shunit2 |