summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xgit-base.sh2
-rwxr-xr-xtest-commits.sh68
2 files changed, 69 insertions, 1 deletions
diff --git a/git-base.sh b/git-base.sh
index 950422d..eb91fc8 100755
--- a/git-base.sh
+++ b/git-base.sh
@@ -122,7 +122,7 @@ readable_branch_name() {
}
remote_branch_name() {
- local localRef="$(branch_name)"
+ local localRef="\/$(branch_name)$"
if [[ -n "$localRef" ]]; then
local remoteBranch="$(git for-each-ref --format='%(upstream:short)' refs/heads $localRef 2>/dev/null | grep $localRef)"
if [[ -n $remoteBranch ]]; then
diff --git a/test-commits.sh b/test-commits.sh
index 340365d..01b07d3 100755
--- a/test-commits.sh
+++ b/test-commits.sh
@@ -189,6 +189,74 @@ test_remote_behind_master() {
rm_tmp
}
+test_remote_branch_starts_with_local_branch_name() {
+ cd_to_tmp "remote"
+ git init --bare --quiet
+ remoteLocation="$(pwd)"
+
+ cd_to_tmp "local"
+ git init --quiet
+ git remote add origin $remoteLocation
+ git fetch origin --quiet
+
+ git checkout -b master --quiet
+ touch README
+ git add README
+ git commit -m "initial commit" --quiet
+
+ git push --quiet -u origin master >/dev/null
+ git reset --quiet --hard HEAD
+
+ git checkout -b foobar --quiet
+ touch foobarfile
+ git add foobarfile
+ git commit -m "added foobar" --quiet
+ git push --quiet -u origin foobar >/dev/null
+
+ git checkout -b foo --quiet
+
+ assertEquals "0" "$(remote_ahead_of_master)"
+ assertEquals "0" "$(remote_behind_of_master)"
+ assertEquals "0" "$(commits_behind_of_remote)"
+ assertEquals "0" "$(commits_ahead_of_remote)"
+
+ rm_tmp
+}
+
+test_remote_branch_ends_with_local_branch_name() {
+ cd_to_tmp "remote"
+ git init --bare --quiet
+ remoteLocation="$(pwd)"
+
+ cd_to_tmp "local"
+ git init --quiet
+ git remote add origin $remoteLocation
+ git fetch origin --quiet
+
+ git checkout -b master --quiet
+ touch README
+ git add README
+ git commit -m "initial commit" --quiet
+
+ git push --quiet -u origin master >/dev/null
+ git reset --quiet --hard HEAD
+
+ git checkout -b foobar --quiet
+ touch foobarfile
+ git add foobarfile
+ git commit -m "added foobar" --quiet
+ git push --quiet -u origin foobar >/dev/null
+
+ git checkout -b bar --quiet
+
+ assertEquals "0" "$(remote_ahead_of_master)"
+ assertEquals "0" "$(remote_behind_of_master)"
+ assertEquals "0" "$(commits_behind_of_remote)"
+ assertEquals "0" "$(commits_ahead_of_remote)"
+
+ rm_tmp
+}
+
test_dont_call_remote_branch_name() {
cd_to_tmp "remote"
git init --bare --quiet