]>
git.madduck.net Git - etc/zsh.git/blobdiff - .zsh/zshrc/60_vcsprompt
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
# Shamelessly based on http://glandium.org/blog/?p=170
#
# 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
__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_print_preprompt()
{
[ "$(git config --get core.bare)" = false ] || return
__git_print_preprompt()
{
[ "$(git config --get core.bare)" = false ] || return
+ __on_networkfs && return
local output
output=(${(f):-"$(git diff --stat --relative 2>/dev/null)"})
local output
output=(${(f):-"$(git diff --stat --relative 2>/dev/null)"})
# if vcsh is used to get a subshell, then the repo root is the home
# directory, but we want to indicate the vcsh context too:
eval set -- $(__vcs_get_prompt_path_components "$HOME" "$branch")
# if vcsh is used to get a subshell, then the repo root is the home
# directory, but we want to indicate the vcsh context too:
eval set -- $(__vcs_get_prompt_path_components "$HOME" "$branch")
- set -- "%Svcsh:$VCSH_REPO_NAME%s " "$2" "$3"
+ set -- "vcsh:$VCSH_REPO_NAME " "$2" "$3"
else
eval set -- $(__vcs_get_prompt_path_components "$reporoot" "$branch")
if [ -d "$GIT_DIR" ]; then
else
eval set -- $(__vcs_get_prompt_path_components "$reporoot" "$branch")
if [ -d "$GIT_DIR" ]; then
- psvar[1,3]=(${(%)1} ${(%)2} ${(%)3} )
}
__vcs_print_preprompt()
}
__vcs_print_preprompt()