X-Git-Url: https://git.madduck.net/etc/zsh.git/blobdiff_plain/92ae9f6d6b2239c570e16b97e58f60dcdeab65c4..c853fda54db5336befa027b4fe90f3b6b665c31e:/.zsh/zshrc/60_vcsprompt diff --git a/.zsh/zshrc/60_vcsprompt b/.zsh/zshrc/60_vcsprompt index dd8335a..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 --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/}" } __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/~}"