summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xgit-base.sh6
-rwxr-xr-xtest-commits.sh25
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