gitstatus
gitstatus copied to clipboard
fix tag detection in linked worktrees
Previously, tags were not detected when they were checked out in a separate linked worktree. This occurred because gitstatus tried to read from refs/tags relative to the worktree-specific .git directory. However, since tags are shared refs, refs/tags will never exist there, but rather in the global git-dir (see the "REFS" section in git-worktree(1)).
To fix this, remove the worktrees/* suffix from the repository path when needed.
To reproduce this issue:
$ git clone https://github.com/romkatv/gitstatus
$ cd gitstatus
$ worktree="$(mktemp -d)"
$ git worktree add "$worktree" v1.5.5
$ cd "$worktree"
$ typeset -m VCS_STATUS_TAG
VCS_STATUS_TAG=''
$ git describe --tags --exact-match
v1.5.5