Hi, On Sat, 14 Feb 2009, Junio C Hamano wrote: > Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > > > - update-ref does _not_ interpret @{-<n>} as the branch name (which I > > find okay, as update-ref is plumbing), but instead creates the file > > '.git/@{-<n>}' (which I think is a bug). > > I do not think it make any sense for update-ref to expand @{-1} to the > name of the last branch, As I said, I find the behavior okay. > The particular plumbing command, following the example of recent > loosening the rule back to "HEAD is allowed to point outside > refs/heads/", should be allowed to create anything that passes > check_ref_format(), and perhaps bit more because we would need to allow > ".git/HEAD". That was what I was referring to when talking about a bug. > > Now, show-branch indeed does not substitute the branch _name_, but > > otherwise it works correctly, no? > > otherwise it works correctly, no? And given the fact that show-branch > > does not substitute "HEAD" with the current branch name, either,... > > The tip commits come from get_sha1(), so obviously it would "work", but it > does not show what branch it talks about. HEAD is shown only when the > user says HEAD (e.g. "git show-branch master HEAD") so I do not see much > similarity there. Well, it _is_ a substitution. If you ask for "HEAD", you get "HEAD". As a new user, if passing "@{-2}" to show-branch would not show "@{-2}", but DWIM the branch name, I would expect, really, that passing "HEAD" does the same sort of DWIMming for me. In the name of consistency, I'd rather leave show-branch as it is. However, IMO there is a much worse issue lurking: people might want to _know_ what "@{-2}" would expand to, _without_ switching branches. At the moment, I can only think of git show -s --decorate --pretty=format:%d @{-2} which is - convoluted (I would not expect _any_ new user to think of this), - wrong (it shows all the refs that point to the commit, not only the one we wanted to find out). And no, do not suggest using "git rev-parse --symbolic-full-name @{-2}", you know exactly what I think of teaching new users plumbing, and you know I am right in this respect. Ciao, Dscho -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html