diff --git a/lib/git.zsh b/lib/git.zsh index 67075248e..f21f11db9 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -105,6 +105,25 @@ git_prompt_status() { echo $STATUS } +# Checks if there is a bisect, merge or rebase currently going on +git_prompt_rebase_state() { + STATUS="" + + if [ -f ".git/BISECT_LOG" ] ; then + STATUS="$ZSH_THEME_GIT_PROMPT_STATE_BEFORE$ZSH_THEME_GIT_PROMPT_STATE_BISECT" + elif [ -f ".git/MERGE_HEAD" ] ; then + STATUS="$ZSH_THEME_GIT_PROMPT_STATE_BEFORE$ZSH_THEME_GIT_PROMPT_STATE_MERGE" + else + for dir in rebase rebase-apply rebase-merge ; do + if [ -d ".git/$dir" ] ; then + STATUS="$ZSH_THEME_GIT_PROMPT_STATE_BEFORE$ZSH_THEME_GIT_PROMPT_STATE_REBASE" + break + fi + done + fi + echo $STATUS +} + #compare the provided version of git to the version installed and on path #prints 1 if input version <= installed version #prints -1 otherwise diff --git a/themes/stibbons.zsh-theme b/themes/stibbons.zsh-theme index 10a2d94c6..1ee8c5bd9 100644 --- a/themes/stibbons.zsh-theme +++ b/themes/stibbons.zsh-theme @@ -7,7 +7,7 @@ ZSH_THEME_GIT_PROMPT_CLEAN="" git_custom_status() { local cb=$(current_branch) if [ -n "$cb" ]; then - echo "$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX" + echo "$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX$(git_prompt_rebase_state)" fi }