If a remote branch or a tag is checked out, HEAD becomes „detached”, i.e. it does not point to a local branch, but to a commit. In msysgit, the shell outputs some lengthy note and the prompt changes to either the shortened commit id with ellipsis in parentheses
(in the case of a remote branch) or to the tag name in parentheses (in the case of a tag).
In Egit, however, we always see the shortened branch name (without ellipsis) in the project label decoration (and it is shortened to just six characters instead of seven as in msysgit).
How about changing EGit in such a way as to
- Show the shortened commit id with seven chars and followed by ellipsis (both for remote branches and tags)
- Add the tag name or the remote branch name after the shortened commit id, respectively if such a tag or remote branch can be found
So the default label decoration for a project could look like:
<some.project.name> [repositoryname master]-------local branch “master” checked out
<some.project.name> [repositoryname abcdxyz… (remotes/origin/master)]-------remote branch “origin/master” checked out, commit abcdxyz…
<some.project.name> [repositoryname xyzabcd… (tags/v0.1.3)]-------tag “v0.1.3” checked out, commit xyzabcd…
Does this make sense?
The remaining question would be how to react in cases when there is more than one tag and/or remote branch for the same commit.
Alternatively, we could always just show the shortened commit id with ellipsis and offer a specific UI to display tags/remote branches that point to that commit.