|
|
@@ -3,40 +3,18 @@
|
|
|
|
|
|
# Git: branch/detached head, dirty status
|
|
|
prompt_git() {
|
|
|
- local ref dirty mode repo_path
|
|
|
- repo_path=$(git rev-parse --git-dir 2>/dev/null)
|
|
|
-
|
|
|
+ local color dirty branch
|
|
|
if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
|
|
|
dirty=$(parse_git_dirty)
|
|
|
- ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git show-ref --head -s --abbrev |head -n1 2> /dev/null)"
|
|
|
if [[ -n $dirty ]]; then
|
|
|
- prompt_segment yellow black
|
|
|
+ color='yellow'
|
|
|
else
|
|
|
- prompt_segment green black
|
|
|
- fi
|
|
|
-
|
|
|
- if [[ -e "${repo_path}/BISECT_LOG" ]]; then
|
|
|
- mode=" <B>"
|
|
|
- elif [[ -e "${repo_path}/MERGE_HEAD" ]]; then
|
|
|
- mode=" >M<"
|
|
|
- elif [[ -e "${repo_path}/rebase" || -e "${repo_path}/rebase-apply" || -e "${repo_path}/rebase-merge" || -e "${repo_path}/../.dotest" ]]; then
|
|
|
- mode=" >R>"
|
|
|
+ color='green'
|
|
|
fi
|
|
|
-
|
|
|
- setopt promptsubst
|
|
|
- autoload -Uz vcs_info
|
|
|
-
|
|
|
- zstyle ':vcs_info:*' enable git
|
|
|
- zstyle ':vcs_info:*' get-revision true
|
|
|
- zstyle ':vcs_info:*' check-for-changes true
|
|
|
- zstyle ':vcs_info:*' stagedstr '✚'
|
|
|
- zstyle ':vcs_info:git:*' unstagedstr '●'
|
|
|
- zstyle ':vcs_info:*' formats ' %u%c'
|
|
|
- zstyle ':vcs_info:*' actionformats ' %u%c'
|
|
|
- vcs_info
|
|
|
- echo -n "${ref/refs\/heads\// }${vcs_info_msg_0_%% }${mode}"
|
|
|
+ branch=$(git rev-parse --abbrev-ref HEAD)
|
|
|
+ echo -n "%F{$color}➤ $branch%f"
|
|
|
fi
|
|
|
}
|
|
|
|
|
|
-PROMPT='[%~] '
|
|
|
-RPROMPT='[$(prompt_git)]'
|
|
|
+PROMPT='%F{blue}%~%f '
|
|
|
+RPROMPT='$(prompt_git)'
|