]> git.donarmstrong.com Git - zsh.git/commitdiff
handle a little better when GIT_DIR is set
authormartin f. krafft <madduck@madduck.net>
Fri, 9 May 2008 22:20:43 +0000 (23:20 +0100)
committermartin f. krafft <madduck@madduck.net>
Fri, 9 May 2008 22:21:27 +0000 (23:21 +0100)
.zsh/zshrc/60_vcsprompt

index 4cbfb6af99e9cf1cba5397e1c68531b4b25ab873..4da474a2cf33f4001dc73f2784725b369c57b7fd 100644 (file)
@@ -13,6 +13,7 @@
 __git_get_reporoot()
 {
   # return the full path to the root of the current git repository
+  [ -d "$GIT_DIR" ] && echo "$GIT_DIR" && return 0
   local relroot
   relroot="$(git rev-parse --show-cdup 2>/dev/null)" || return 1
   if [ -n "$relroot" ]; then
@@ -143,18 +144,23 @@ __vcs_set_prompt_variables()
         { error "could not determine git repository root"; return 1 }
       branch="$(__git_get_branch)" ||
         { error "could not determine git branch"; return 1 }
+      set -- $(__vcs_get_prompt_path_components "$reporoot" "$branch")
+      [ -d "$GIT_DIR" ] && set -- "$GIT_DIR" "$2" "$1"
+      set +x
       ;;
     hg)
       reporoot="$(__hg_get_reporoot)" ||
         { error "could not determine hg repository root"; return 1 }
       branch="$(__hg_get_branch)" ||
         { error "could not determine hg branch"; return 1 }
+      set -- $(__vcs_get_prompt_path_components "$reporoot" "$branch")
       ;;
     bzr)
       reporoot="$(__bzr_get_reporoot)" ||
         { error "could not determine bzr repository root"; return 1 }
       branch="$(__bzr_get_branch)" ||
         { error "could not determine bzr branch"; return 1 }
+      set -- $(__vcs_get_prompt_path_components "$reporoot" "$branch")
       ;;
     *)
       case "$repotype" in
@@ -169,7 +175,6 @@ __vcs_set_prompt_variables()
       return
   esac
 
-  set -- $(__vcs_get_prompt_path_components "$reporoot" "$branch")
   psvar[1]="$1"
   psvar[2]="$2"
   psvar[3]="$3"