diff options
Diffstat (limited to 'lib/git.zsh')
| -rw-r--r-- | lib/git.zsh | 15 | 
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/git.zsh b/lib/git.zsh index 3e14695bd..76fe9b142 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -9,16 +9,19 @@ function git_prompt_info() {  # Checks if working tree is dirty  parse_git_dirty() {    local SUBMODULE_SYNTAX='' +  local GIT_STATUS='' +  local CLEAN_MESSAGE='nothing to commit (working directory clean)'    if [[ "$(git config --get oh-my-zsh.hide-status)" != "1" ]]; then      if [[ $POST_1_7_2_GIT -gt 0 ]]; then            SUBMODULE_SYNTAX="--ignore-submodules=dirty" -    fi -    if [[ -n $(git status -s ${SUBMODULE_SYNTAX}  2> /dev/null) ]]; then +    fi   +    GIT_STATUS=$(git status -s ${SUBMODULE_SYNTAX} 2> /dev/null | tail -n1) +    if [[ -n $GIT_STATUS && "$GIT_STATUS" != "$CLEAN_MESSAGE" ]]; then        echo "$ZSH_THEME_GIT_PROMPT_DIRTY"      else        echo "$ZSH_THEME_GIT_PROMPT_CLEAN" -    fi -  fi +    fi   +  fi    }  # get the difference between the local and remote branches @@ -62,7 +65,7 @@ function git_prompt_long_sha() {  git_prompt_status() {    INDEX=$(git status --porcelain -b 2> /dev/null)    STATUS="" -  if $(echo "$INDEX" | grep '^?? ' &> /dev/null); then +  if $(echo "$INDEX" | grep -E '^\?\? ' &> /dev/null); then      STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"    fi    if $(echo "$INDEX" | grep '^A  ' &> /dev/null); then @@ -112,7 +115,7 @@ function git_compare_version() {    local INPUT_GIT_VERSION=$1;    local INSTALLED_GIT_VERSION    INPUT_GIT_VERSION=(${(s/./)INPUT_GIT_VERSION}); -  INSTALLED_GIT_VERSION=($(git --version)); +  INSTALLED_GIT_VERSION=($(git --version 2>/dev/null));    INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]});    for i in {1..3}; do  | 
