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

Re: [PATCH 2/2] completion: Use parse-options raw output for simple long options

From
SZEDER Gábor <szeder@ira.uka.de>
Date
Apr 17, 2012, 10:44 UTC
Message-ID
<20120417104448.GE2299@goldbirke>
In-Reply-To
<1334140165-24958-3-git-send-email-bebarino@gmail.com>
Hi Stephen,
On Wed, Apr 11, 2012 at 03:29:25AM -0700, Stephen Boyd wrote:
> Now that parse-options supports generating lists of long options for any
> parse-optified git program we can remove the hand-coded lists in the
> completion script. Replace these lists with code to generate the lists
> lazily when a user tab completes that specific command.
> +__git_list_command_options ()
> +{
> +	git $@ --dump-raw-long-options
> +}

Attempting option completion for the first time for commands requiring a repository to work (e.g. 'add', 'branch', 'checkout', etc.) outside of a git repository produces a 'fatal: not a git repository' error. These commands require a repository for '--dump-raw-long-options', too, otherwise they error out in __git_list_command_options(). So at least we'll need

  git $@ --dump-raw-long-options 2> /dev/null

to silence that error, but even then the user won't get any options. Now, I don't think that getting a list of options is that useful at that point, because the command will error out anyway (except when the user explicitly specifies the paths to the repo and work tree), but it's a side effect nonetheless, because it worked before.

Computing the long options for commands not requiring a repository (e.g. 'clone', 'archive', 'help', etc.) works properly even for the first time and outside of a repository.

Best, Gábor

Previous: SZEDER Gábor
Message 14 of 14 in “Dynamic long options for bash completion”
  1. 0/2 Dynamic long options for bash completionStephen Boyd, Apr 11, 2012
  2. 1/2 parse-options: Add support for dumping out long optionsStephen Boyd, Apr 11, 2012
  3. Felipe ContrerasApr 11, 2012
  4. Stephen BoydApr 12, 2012
  5. Jonathan NiederApr 11, 2012
  6. Stephen BoydApr 12, 2012
  7. SZEDER GáborApr 11, 2012
  8. Stephen BoydApr 12, 2012
  9. SZEDER GáborApr 15, 2012
  10. Junio C HamanoApr 15, 2012
  11. 2/2 completion: Use parse-options raw output for simple long optionsStephen Boyd, Apr 11, 2012
  12. Jonathan NiederApr 11, 2012
  13. SZEDER GáborApr 11, 2012
  14. SZEDER GáborApr 17, 2012

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.