123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- local g="$(git rev-parse --git-dir 2>/dev/null)"
- if [ -n "$g" ]; then
- local r
- local b
- if [ -d "$g/../.dotest" ]
- then
- if test -f "$g/../.dotest/rebasing"
- then
- r="|REBASE"
- elif test -f "$g/../.dotest/applying"
- then
- r="|AM"
- else
- r="|AM/REBASE"
- fi
- b="$(git symbolic-ref HEAD 2>/dev/null)"
- elif [ -f "$g/.dotest-merge/interactive" ]
- then
- r="|REBASE-i"
- b="$(cat "$g/.dotest-merge/head-name")"
- elif [ -d "$g/.dotest-merge" ]
- then
- r="|REBASE-m"
- b="$(cat "$g/.dotest-merge/head-name")"
- elif [ -f "$g/MERGE_HEAD" ]
- then
- r="|MERGING"
- b="$(git symbolic-ref HEAD 2>/dev/null)"
- else
- if [ -f "$g/BISECT_LOG" ]
- then
- r="|BISECTING"
- fi
- if ! b="$(git symbolic-ref HEAD 2>/dev/null)"
- then
- if ! b="tag: $(git describe --exact-match HEAD 2>/dev/null)"
- then
- b="$(cut -c1-7 "$g/HEAD")..."
- fi
- fi
- fi
-
- if [ -n "$1" ]; then
- printf "$1" "${b##refs/heads/}$r"
- else
- printf "[%s]" "${b##refs/heads/}$r"
- fi
- fi
|