Re: [PATCH v2 2/2] Teach @{-1} to git merge
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Feb 15, 2009, 11:21 UTC
- Message-ID
- <alpine.DEB.1.00.0902151212320.10279@pacific.mpi-cbg.de>
- In-Reply-To
- <7vfxigqwsp.fsf@gitster.siamese.dyndns.org>
Hi,
On Sat, 14 Feb 2009, Junio C Hamano wrote:
Show 8 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> 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.
Show 5 quoted lines
> 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.
Show 9 quoted lines
> > 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