浏览代码

Added git mode support for merging, rebasing, and bisecting

<B> Designates Bisecting
>M< Designates Merging
>R> Designates Rebasing
tcasparro 11 年之前
父节点
当前提交
53323abdb1
共有 1 个文件被更改,包括 12 次插入2 次删除
  1. 12 2
      themes/agnoster.zsh-theme

+ 12 - 2
themes/agnoster.zsh-theme

@@ -69,7 +69,9 @@ prompt_context() {
 
 
 # Git: branch/detached head, dirty status
 # Git: branch/detached head, dirty status
 prompt_git() {
 prompt_git() {
-  local ref dirty
+  local ref dirty mode repo_path
+  repo_path=$(git rev-parse --git-dir 2>/dev/null)
+
   if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
   if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
     dirty=$(parse_git_dirty)
     dirty=$(parse_git_dirty)
     ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git show-ref --head -s --abbrev |head -n1 2> /dev/null)"
     ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git show-ref --head -s --abbrev |head -n1 2> /dev/null)"
@@ -79,6 +81,14 @@ prompt_git() {
       prompt_segment green black
       prompt_segment green black
     fi
     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>"
+    fi
+
     setopt promptsubst
     setopt promptsubst
     autoload -Uz vcs_info
     autoload -Uz vcs_info
 
 
@@ -90,7 +100,7 @@ prompt_git() {
     zstyle ':vcs_info:*' formats ' %u%c'
     zstyle ':vcs_info:*' formats ' %u%c'
     zstyle ':vcs_info:*' actionformats ' %u%c'
     zstyle ':vcs_info:*' actionformats ' %u%c'
     vcs_info
     vcs_info
-    echo -n "${ref/refs\/heads\// }${vcs_info_msg_0_%% }"
+    echo -n "${ref/refs\/heads\// }${vcs_info_msg_0_%% }${mode}"
   fi
   fi
 }
 }