7 local git_dir ref base_dir sub_dir action branch
8 git_dir=$(git rev-parse --git-dir 2> /dev/null) || return
10 base_dir=${$(readlink -f "$git_dir/..")/$HOME/'~'}
12 sub_dir=$(git rev-parse --show-prefix)
14 ref=$(git symbolic-ref HEAD 2> /dev/null) || return
18 if [ -d "$git_dir/../.dotest" ]; then
19 if [ -f "$git_dir/../.dotest/rebasing" ]; then
21 elif [ -f "$git_dir/../.dotest/applying" ]; then
27 elif [ -f "$git_dir/.dotest-merge/interactive" ]; then
29 branch="$(cat "$git_dir/.dotest-merge/head-name")"
30 elif [ -d "$git_dir/.dotest-merge" ]; then
32 branch="$(cat "$git_dir/.dotest-merge/head-name")"
33 elif [ -f "$git_dir/MERGE_HEAD" ]; then
37 test -f "$git_dir/BISECT_LOG" && psvar[3]="bisect"
38 branch="$(git symbolic-ref HEAD 2>/dev/null)" || \
39 branch="$(git describe --exact-match HEAD 2>/dev/null)" || \
40 branch="$(cut -c1-7 "$git_dir/HEAD")..."
43 # Got here, we're in git
44 psvar[4]=${branch#refs/heads/}
49 precmd_functions+='git_parse'