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

Re: git.c option parsing

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 17, 2007, 08:48 UTC
Message-ID
<7vsl21aeqw.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<F6F3247E-4E71-4977-9626-F0571278E1E6@wincent.com>
Wincent Colaiuta <win@wincent.com> writes:
> Of course, the above plan will only work for builtins, not for  
> scripts. An additional step would be needed to enable scripts to  
> handle these options; perhaps teaching "git rev-parse" something...

As long as special options stay special and we make a rule not to allow any subcommand to assign its own meaning to them, the git wrapper can lookahead and reorder, when seeing a command line:

	git scripted-command --special
into
	git --special scripted-command

And that approach would work well for built-ins as well, I would imagine.

There is one minor detail, though. There could be an option-parameter that is literally --special. E.g.

	git grep -e --no-paginate
should not be reordered to
	git --no-paginate grep -e
Previous: Wincent ColaiutaNext: Wincent Colaiuta
Message 7 of 24 in “diff topic tweaks”
  1. 0/3 diff topic tweaksWincent Colaiuta, Dec 14, 2007
  2. 1/3 Revert changes and extend diff option documentationWincent Colaiuta, Dec 14, 2007
  3. 2/3 Use shorter error messages for whitespace problemsWincent Colaiuta, Dec 14, 2007
  4. 3/3 Test interaction between diff --check and --exit-codeWincent Colaiuta, Dec 14, 2007
  5. Junio C HamanoDec 16, 2007
  6. git.c option parsing (was: [PATCH 1/3] Revert changes and extend diff option documentation)Wincent Colaiuta, Dec 17, 2007
  7. Junio C HamanoDec 17, 2007
  8. Wincent ColaiutaDec 17, 2007
  9. Pierre HabouzitDec 17, 2007
  10. Pierre HabouzitDec 17, 2007
  11. Have a flag to stop the option parsing at the first argument.Pierre Habouzit, Dec 17, 2007
  12. Johannes SchindelinDec 17, 2007
  13. Wincent ColaiutaDec 17, 2007
  14. Pierre HabouzitDec 17, 2007
  15. Johannes SchindelinDec 17, 2007
  16. Wincent ColaiutaDec 17, 2007
  17. Johannes SchindelinDec 17, 2007
  18. Wincent ColaiutaDec 17, 2007
  19. Johannes SchindelinDec 17, 2007
  20. Wincent ColaiutaDec 17, 2007
  21. Johannes SchindelinDec 17, 2007
  22. Wincent ColaiutaDec 17, 2007
  23. Johannes SixtDec 17, 2007
  24. Pierre HabouzitDec 17, 2007

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.