[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jgit-dev] Re: [egit-dev] RFC: How to display "detached" HEAD in Git Label Decorations
- From: "Shawn O. Pearce" <spearce@xxxxxxxxxxx>
- Date: Mon, 10 May 2010 07:49:32 -0700
- Delivered-to: firstname.lastname@example.org
- User-agent: Mutt/1.5.17+20080114 (2008-01-14)
"Kinzler, Mathias" <mathias.kinzler@xxxxxxx> wrote:
> 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
> 1. Show the shortened commit id with seven chars and followed by ellipsis (both for remote branches and tags)
> 2. 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?
This does seem reasonable.
> 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.
If there is both a remote branch and a tag, use the tag.
If there are multiple tags, use the tag with the most recent
tagger date. If none of the tags have a tagger (these are older
style tags), sort them by name and pick the last one.
If there are no tags, but multiple remote branches, sort them by
name and pick the last one.
> 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.
I don't think this case of multiple refs per commit shows up often
enough to do this. But, it might be useful for some users. Me,
I'd probably never use it.