X-Git-Url: https://git.madduck.net/etc/zsh.git/blobdiff_plain/386bc889f8ab9ee182381b5009b3ddf8c93344cf..e45b0db3d66ca9e041622db3d801d026fb4d3724:/.zsh/zshrc/60_vcsprompt diff --git a/.zsh/zshrc/60_vcsprompt b/.zsh/zshrc/60_vcsprompt index 9c23a0b..d0d33c1 100644 --- a/.zsh/zshrc/60_vcsprompt +++ b/.zsh/zshrc/60_vcsprompt @@ -2,25 +2,29 @@ # # Make git information available to the prompt # -# Copyright © 1994–2008 martin f. krafft +# Copyright © 1994–2017 martin f. krafft # Released under the terms of the Artistic Licence 2.0 # -# Source repository: git://git.madduck.net/etc/zsh.git +# Source repository: http://git.madduck.net/v/etc/zsh.git # # Shamelessly based on http://glandium.org/blog/?p=170 # +__on_networkfs() +{ + case $(df -T . | sed -rne '$s,^[^[:space:]]+[[:space:]]+([^[:space:]]+).*,\1,p') in + (cifs|nfs) return 0;; + esac + return 1 +} + __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 - readlink -f "$relroot" - else - echo $PWD - fi + local dir; dir="$PWD/$(git rev-parse --show-cdup)" + # do not use --show-toplevel because it resolves symlinks + echo $dir:a } __git_get_branch() @@ -36,6 +40,7 @@ __git_get_branch() __git_print_preprompt() { [ "$(git config --get core.bare)" = false ] || return + __on_networkfs && return local output output=(${(f):-"$(git diff --stat --relative 2>/dev/null)"})