From 48f5934b702510f116d19956c14f85ab35ba85fa Mon Sep 17 00:00:00 2001 From: Michael Allen Date: Wed, 3 Jun 2015 15:52:13 +0100 Subject: fixed issue with branches that contain other branch names When a remote branch begins with or ends with the local branch name then the commits against diff functions can report the commits for the remote branch instead of your local branch, e.g.: I have local branch `foo` with 1 commit ahead of master and a remote branch `foobar` with 2 ahead of master. The prompt will report 2 commits instead of the true 1 commit because the `grep $branch_name` returns the `foobar` branch. Simple fix is to ensure we grep for the full `/$` so: branch_name = `foo` `origin/foo` matches `other/foo` matches `origin/foobar` doesn't match `origin/barfoo` doesn't match --- git-base.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'git-base.sh') 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 -- cgit v1.2.3