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

Re: [PATCH v4] for-each-ref: `:short` format for `refname`

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 9, 2008, 08:05 UTC
Message-ID
<7vod2xagmr.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<36ca99e90809082352q3c87447eme73379673fe652f4@mail.gmail.com>
"Bert Wesarg" <bert.wesarg@googlemail.com> writes:
Show 18 quoted lines
> Any opinions, whether we want the 'strict' mode? i.e.:
>
> for refs/heads/xyzzy and refs/tags/xyzzy:
>
> loose mode (current implementation):
>
>   refs/heads/xyzzy => heads/xyzzy
>   refs/tags/xyzzy  => xyzzy
>
> there would be a ambiguous warning (if enabled) if you use xyzzy as a
> tag, but it resolves correctly to the tag.
>
> strict mode:
>
>   refs/heads/xyzzy => heads/xyzzy
>   refs/tags/xyzzy  => tags/xyzzy
>
> will always produce a non-ambiguous short forms.

I have no strong opinions either way, but if we want to pick only one, I suspect that the loose mode would be more appropriate for bash completion purposes exactly because:

 (1) the shorter form would match the users' expectations, and;
 (2) if it triggers ambiguity warning to use that result that matches
     users' expectations, it is a *good thing* --- it reminds the user
     that s/he is playing with fire _if_ the user is of careful type who
     enables the ambiguity warning.

Thinking about it from a different angle, it would make more sense to use loose mode if the user does not have ambiguity warning configured, and use strict mode if the warning is enabled. Then people who will get warnings from ambiguity will not get an ambiguous completion, and people who won't will get shorter but still unambiguous completion.

Which means, despite what I said earlier, now I have a mild preference to tie the choice to core.wawrnambigousrefs configuration.

Previous: Bert WesargNext: Bert Wesarg
Message 25 of 26 in “for-each-ref: `:short` format for `refname`”
  1. for-each-ref: `:short` format for `refname`Bert Wesarg, Aug 31, 2008
  2. SZEDER GáborSep 1, 2008
  3. Bert WesargSep 1, 2008
  4. Bert WesargSep 1, 2008
  5. Shawn O. PearceSep 1, 2008
  6. Bert WesargSep 1, 2008
  7. Junio C HamanoSep 1, 2008
  8. Bert WesargSep 1, 2008
  9. Bert WesargSep 2, 2008
  10. Shawn O. PearceSep 2, 2008
  11. for-each-ref: `:short` format for `refname`Bert Wesarg, Sep 2, 2008
  12. Junio C HamanoSep 2, 2008
  13. Bert WesargSep 3, 2008
  14. for-each-ref: `:short` format for `refname`Bert Wesarg, Sep 3, 2008
  15. Shawn O. PearceSep 3, 2008
  16. Bert WesargSep 3, 2008
  17. Bert WesargSep 3, 2008
  18. Junio C HamanoSep 3, 2008
  19. for-each-ref: `:short` format for `refname`Bert Wesarg, Sep 5, 2008
  20. Junio C HamanoSep 5, 2008
  21. Bert WesargSep 6, 2008
  22. Junio C HamanoSep 8, 2008
  23. Shawn O. PearceSep 8, 2008
  24. Bert WesargSep 9, 2008
  25. Junio C HamanoSep 9, 2008
  26. Bert WesargSep 9, 2008

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.