X-Git-Url: https://git.madduck.net/etc/zsh.git/blobdiff_plain/ba5bd95983d7b78f798c44022dfafac797b89228..5d1762783236f0a06747432841910f0ccf7068a8:/.zsh/zshrc/60_vcsprompt?ds=sidebyside

diff --git a/.zsh/zshrc/60_vcsprompt b/.zsh/zshrc/60_vcsprompt
index aeabd77..f9649fb 100644
--- a/.zsh/zshrc/60_vcsprompt
+++ b/.zsh/zshrc/60_vcsprompt
@@ -26,24 +26,27 @@ __git_get_reporoot()
 __git_get_branch()
 {
   # return the name of the git branch we're on
-  local ref
-  ref=$(git symbolic-ref -q HEAD 2>/dev/null \
-     || git-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/}"
 }
 
 __git_print_preprompt()
 {
+  [ "$(git config --get core.bare)" = false ] || return
+
   local output
   output=(${(f):-"$(git diff --stat --relative 2>/dev/null)"})
   if [[ ${#output} -gt 1 ]]; then
     echo changes on filesystem:
-    print "${(F)output[1,-2]}"
+    print "${${(F)output[1,-2]}//\.\.\./…}"
   fi
   output=(${(f):-"$(git diff --cached --stat --relative 2>/dev/null)"})
   if [[ ${#output} -gt 1 ]]; then
     echo cached/staged changes:
-    print "${(F)output[1,-2]}"
+    print "${${(F)output[1,-2]}//\.\.\./…}"
   fi
 }