|
|
|
@ -62,14 +62,18 @@ 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
|
|
|
|
|
# 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)
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
# 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
|
|
|
|
|