Re: `@` alias for `HEAD` not working in `git push -u origin @`
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 31, 2019, 16:10 UTC
- Message-ID
- <xmqqsgqmqj5k.fsf@gitster-ct.c.googlers.com>
- In-Reply-To
- <20190731055832.GA18039@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 15 quoted lines
> On Wed, Jul 10, 2019 at 11:39:37PM +0000, brian m. carlson wrote: > >> This is a bug. If the destination side of a refspec is omitted, and the >> source side resolves to a ref starting with "refs/heads/" or >> "refs/tags/" (which I expect it does here), then that ref is used as the >> destination. >> >> I submitted a patch at [0], but it was decided not to pick it up. If >> Junio and the list decide that it's wanted, I'm happy to resend or >> revise and resend. >> >> [0] https://public-inbox.org/git/20180729192803.1047050-1-sandals@crustytoothpaste.net/ > > I see I was cc'd on that original, but I don't remember ever reading it. > It seems like a sane enough idea to me.
I see I was also on the cc list; I am not sure what I thought about the patch (i.e. implementation, not the desire to use '@' in the context in place for "HEAD") back then.
Now I read it with everything I thought forgotten, I see two potential issues:
- Any error message downstream will mention "HEAD" and there won't be a trace of it originally being an "@" sign. It may not be a problem, especially for those who _KNOW_ that they should be typing HEAD but can type "@" instead, but I am not sure what to do those who do not know much about "HEAD" and start from "@" (by the way, it is one reason why I do not like encouraging "@", especially in introductory text).
- The code should update llen to 4; right now the remainder of the function does not use the variable in a way that the discrepancy of replacing "@" with "HEAD" without updating llen matters, but relying on the shape of the code that happens to exist right now is a bad code hygiene.
Other than that, the patch looks sensible to me.
Show 19 quoted lines
> Although I did notice that you mentioned there: > >> I probably type "git push upstream HEAD" from five to thirty times a >> day > > I find I do that rarely, because I have: > > [push] > default = current > > and in a triangular workflow, I have: > > [remote] > pushDefault = upstream > > So "git push" without arguments typically does the same thing for me. > > Not an argument against your patch, but just something you might find > useful.
That's a helpful tangent. Thanks.