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

Re: [PATCH] completion: bash: support recursive aliases

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 9, 2020, 22:29 UTC
Message-ID
<xmqq4klyb1w2.fsf@gitster.c.googlers.com>
In-Reply-To
<X6m8R9erSxGlPXq2@nand.local>
Taylor Blau <me@ttaylorr.com> writes:
Show 19 quoted lines
> I am not an expert or user of the Bash completion scripts in contrib, so
> I'll refrain from reviewing that portion of the patch.
>
> I would, however, recommend that you avoid the word 'recursive' here.
> Git rightly detects and rejects recursive and looping aliases. In fact,
> the example that you give below:
>
>>   l = log --oneline
>>   lg = l --graph
>
> Is not even recursive. I would instead recommend calling 'lg' a "nested"
> alias.
>
> You could argue about whether it is "l", "lg", or both that are nested,
> but I think renaming the patch to "completion: bash: support nested
> aliases" and then a s/recursive/nested throughout the patch message
> would be sufficient.
>
>> So the completion should detect such aliases as well.
Two comments.
 - on design, is it possible to make a set of aliases that form a
   cycle?  do we need to worry about such case?  what does the
   current implementation do for an "alias" in such a cycle?
 - on implementation, it is done as a recursive call to the same
   function, but a loop that naturally maps tail recursion would
   also be a trivial implementation.  is it worth rewriting the
   recursive calls into a loop?  if we need to solve the circular
   references (above) by say limiting the length of the cycle, would
   such a rewrite make sense as a way to help implementation?
Previous: Taylor BlauNext: Felipe Contreras
Message 3 of 8 in “completion: bash: support recursive aliases”
  1. completion: bash: support recursive aliasesFelipe Contreras, Nov 9, 2020
  2. Taylor BlauNov 9, 2020
  3. Junio C HamanoNov 9, 2020
  4. Felipe ContrerasNov 10, 2020
  5. Felipe ContrerasNov 10, 2020
  6. Jeff KingNov 9, 2020
  7. Felipe ContrerasNov 10, 2020
  8. Jeff KingNov 10, 2020

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.