# based on http://sebastiancelis.com/2009/nov/16/zsh-prompt-git-users/ unset __CURRENT_GIT_BRANCH unset __CURRENT_GIT_BRANCH_STATUS unset __CURRENT_GIT_BRANCH_IS_DIRTY local git_dir head git_dir="$(git rev-parse --git-dir 2>/dev/null)" if [[ -n "$git_dir" ]] ; then head=$(cat "$git_dir/HEAD") if [[ $head =~ '^ref: ' ]]; then __CURRENT_GIT_BRANCH=$(expr "$head" : 'ref: refs/heads/\(.*\)') else __CURRENT_GIT_BRANCH="no-branch" fi fi #local st="$(git status 2>/dev/null)" #if [[ -n "$st" ]]; then # local -a arr # arr=(${(f)st}) # # if [[ $arr[1] =~ 'Not currently on any branch.' ]]; then # __CURRENT_GIT_BRANCH='no-branch' # else # __CURRENT_GIT_BRANCH="${arr[1][(w)4]}"; # fi # # if [[ $arr[2] =~ 'Your branch is' ]]; then # if [[ $arr[2] =~ 'ahead' ]]; then # __CURRENT_GIT_BRANCH_STATUS='ahead' # elif [[ $arr[2] =~ 'diverged' ]]; then # __CURRENT_GIT_BRANCH_STATUS='diverged' # else # __CURRENT_GIT_BRANCH_STATUS='behind' # fi # fi # # if [[ ! $st =~ 'nothing to commit' ]]; then # __CURRENT_GIT_BRANCH_IS_DIRTY='1' # fi #fi