git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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.
Previous: Jeff King
Message 7 of 7 in “`@` alias for `HEAD` not working in `git push -u origin @`”
  1. Mark FlorianJul 10, 2019
  2. brian m. carlsonJul 10, 2019
  3. Johannes SchindelinJul 11, 2019
  4. brian m. carlsonJul 11, 2019
  5. Johannes SchindelinJul 12, 2019
  6. Jeff KingJul 31, 2019
  7. Junio C HamanoJul 31, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.