X-Git-Url: https://git.madduck.net/etc/zsh.git/blobdiff_plain/bc70f8fe56ee3aa16ac7a65b7777e115efda1c33..c853fda54db5336befa027b4fe90f3b6b665c31e:/.zsh/zshrc/60_vcsprompt diff --git a/.zsh/zshrc/60_vcsprompt b/.zsh/zshrc/60_vcsprompt index d12f686..9513f6a 100644 --- a/.zsh/zshrc/60_vcsprompt +++ b/.zsh/zshrc/60_vcsprompt @@ -26,14 +26,17 @@ __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 @@ -156,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/~}"