|
@@ -9,14 +9,27 @@ function __git_prompt_git() {
|
|
GIT_OPTIONAL_LOCKS=0 command git "$@"
|
|
GIT_OPTIONAL_LOCKS=0 command git "$@"
|
|
}
|
|
}
|
|
|
|
|
|
-# Outputs current branch info in prompt format
|
|
|
|
function git_prompt_info() {
|
|
function git_prompt_info() {
|
|
|
|
+ # If we are on a folder not tracked by git, get out.
|
|
|
|
+ # Otherwise, check for hide-info at global and local repository level
|
|
|
|
+ if ! __git_prompt_git rev-parse --git-dir &> /dev/null \
|
|
|
|
+ || [[ "$(__git_prompt_git config --get oh-my-zsh.hide-info 2>/dev/null)" == 1 ]]; then
|
|
|
|
+ return 0
|
|
|
|
+ fi
|
|
|
|
+
|
|
local ref
|
|
local ref
|
|
- if [[ "$(__git_prompt_git config --get oh-my-zsh.hide-status 2>/dev/null)" != "1" ]]; then
|
|
|
|
- ref=$(__git_prompt_git symbolic-ref HEAD 2> /dev/null) || \
|
|
|
|
- ref=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) || return 0
|
|
|
|
- echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
|
|
|
|
|
+ ref=$(__git_prompt_git symbolic-ref --short HEAD 2> /dev/null) \
|
|
|
|
+ || ref=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) \
|
|
|
|
+ || return 0
|
|
|
|
+
|
|
|
|
+ # Use global ZSH_THEME_GIT_SHOW_UPSTREAM=1 for including upstream remote info
|
|
|
|
+ local upstream
|
|
|
|
+ if (( ${+ZSH_THEME_GIT_SHOW_UPSTREAM} )); then
|
|
|
|
+ upstream=$(__git_prompt_git rev-parse --abbrev-ref --symbolic-full-name "@{upstream}" 2>/dev/null) \
|
|
|
|
+ && upstream=" -> ${upstream}"
|
|
fi
|
|
fi
|
|
|
|
+
|
|
|
|
+ echo "${ZSH_THEME_GIT_PROMPT_PREFIX}${ref}${upstream}$(parse_git_dirty)${ZSH_THEME_GIT_PROMPT_SUFFIX}"
|
|
}
|
|
}
|
|
|
|
|
|
# Checks if working tree is dirty
|
|
# Checks if working tree is dirty
|