X-Git-Url: https://git.madduck.net/etc/zsh.git/blobdiff_plain/ba5bd95983d7b78f798c44022dfafac797b89228..f157c04d1fd31400e0d793914ec84d0498f0a315:/.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 }