]> git.donarmstrong.com Git - zsh.git/blobdiff - .zsh/zshrc/60_vcsprompt
improve vcsh prompt integration
[zsh.git] / .zsh / zshrc / 60_vcsprompt
index 07ea29388fdeba3ac45de18284ec9aa8eab6ef94..9513f6a7beaf1b06961cb74ebbe8406ec8daca53 100644 (file)
@@ -26,9 +26,10 @@ __git_get_reporoot()
 __git_get_branch()
 {
   # return the name of the git branch we're on
-  local ref
-  ref=$(git --git-dir="$PWD" symbolic-ref -q HEAD 2>/dev/null \
-     || git --git-dir="$PWD" name-rev --name-only HEAD 2>/dev/null) || return 1
+  local ref gitdir
+  gitdir="$(git rev-parse --git-dir)"
+  ref=$(git --git-dir="$gitdir" symbolic-ref -q HEAD 2>/dev/null \
+     || git --git-dir="$gitdir" name-rev --name-only HEAD 2>/dev/null) || return 1
   echo "${ref#refs/heads/}"
 }
 
@@ -158,7 +159,9 @@ __vcs_set_prompt_variables()
       branch="$(__git_get_branch)" ||
         { error "could not determine git branch"; return 1 }
       eval set -- $(__vcs_get_prompt_path_components "$reporoot" "$branch")
-      if [ -d "$GIT_DIR" ]; then
+      if [ -n "$VCSH_REPO_NAME" ]; then
+        set -- "vcsh/$VCSH_REPO_NAME" "$2" "$3"
+      elif [ -d "$GIT_DIR" ]; then
         # poor man's replace until I find out how to do named dirs properly
         # here:
         local _D="${GIT_DIR/$HOME/~}"