mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2024-12-23 23:51:58 +00:00
Weird conditions handling
Become a programmer, they said. It'll be fun, they said.
This commit is contained in:
parent
ce16b087c6
commit
14e213bd68
1 changed files with 12 additions and 8 deletions
|
@ -62,16 +62,20 @@ function +vi-git-remotebranch() {
|
|||
|
||||
function +vi-git-tagname() {
|
||||
# Only show the tag name if we are not in DETACHED_HEAD state,
|
||||
# since in that case it would already be displayed in the branch segment
|
||||
if [[ -z "$(git symbolic-ref HEAD 2>/dev/null)" ]] ; then
|
||||
local tag
|
||||
# or if the current branch's HEAD is the same commit as a tag but
|
||||
# doesn't have the same name
|
||||
local tag
|
||||
tag=$(git describe --tags --exact-match HEAD 2>/dev/null)
|
||||
|
||||
tag=$(git describe --tags --exact-match HEAD 2>/dev/null)
|
||||
if [[ -z "$(git symbolic-ref HEAD 2>/dev/null)" || ! -z "${tag}" ]] ; then
|
||||
head=$(git describe --all)
|
||||
# Make sure that detached head and tag differ in name
|
||||
if [[ "${head}" != "${tag}" ]]; then
|
||||
# Append the tag segment to the branch one
|
||||
[[ -n "${tag}" ]] && hook_com[branch]+=" $(print_icon 'VCS_TAG_ICON')${tag}"
|
||||
# Make sure that detached head or checked out name differs from tag name
|
||||
if [[ "${head}" != "${tag}" ||
|
||||
"$(git rev-parse --abbrev-ref HEAD)" != "${tag}" &&
|
||||
"$(git rev-parse --abbrev-ref HEAD)" != "HEAD" &&
|
||||
"$(git rev-list -n 1 HEAD)" == "$(git rev-list -n 1 ${tag})" ]]; then
|
||||
# Append the tag segment to the branch one
|
||||
[[ -n "${tag}" ]] && hook_com[branch]+=" $(print_icon 'VCS_TAG_ICON')${tag}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue