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

Re: [PATCH] git-stash: fix flag parsing

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 27, 2010, 04:36 UTC
Message-ID
<7vzkv3hkg1.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1285366534-10490-1-git-send-email-brian@gernhardtsoftware.com>
Brian Gernhardt <brian@gernhardtsoftware.com> writes:
Show 9 quoted lines
> Currently git-stash uses `git rev-parse --no-revs -- "$@"` to set its
> FLAGS variable.  This is the same as `FLAGS="-- $@"`.  It should use
> `git rev-parse --no-revs --flags "$@"`, but that eats any "-q" or
> "--quiet" argument.  So move the check for quiet before rev-parse.
>
> Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
> ---
>
>  Not the most elegant solution, but it works.
Thanks.

rev-parse as a flag parser was useful hack when most of the log family was "rev-list | diff-tree" with various options, but the recent push to make flags consistent across commands inevitably has made it fundamentally impossible for the function to function sensibly in all cases, as it itself has to share some options, like "-q", with others.

After the push of rewriting everything as C builtin, combined with the improvement of parse-options, I have to say that rev-parse flag parser hack has outlived its usefulness. The former means there is less reason to script end-user commands as a "rev-list | diff-tree" pipeline (I am not talking about special purpose statistics commands that use rev-list here), and the latter means that it has become easier for a Porcelain script to parse _its_ command line options and come up with a set of sensible options to underlying rev-list and the command at the downstream of the pipe, without following the original hacky pattern of "we let random options and args and without interpreting them we guess which ones to throw at rev-list and which ones to throw at diff-tree".

Previous: Jon SeymourNext: Jon Seymour
Message 11 of 27 in “git-1.7.3 breakage: "git stash show xxx" doesn't show anything”
  1. Robin H. JohnsonSep 24, 2010
  2. Brandon CaseySep 24, 2010
  3. Brian GernhardtSep 24, 2010
  4. t/t3903-stash: improve testing of git-stash showBrandon Casey, Sep 24, 2010
  5. Brian GernhardtSep 24, 2010
  6. Brandon CaseySep 24, 2010
  7. Brian GernhardtSep 24, 2010
  8. git-stash: fix flag parsingBrian Gernhardt, Sep 24, 2010
  9. git-stash: fix flag parsingBrian Gernhardt, Sep 24, 2010
  10. Jon SeymourSep 25, 2010
  11. Junio C HamanoSep 27, 2010
  12. stash: simplify parsing fixesJon Seymour, Sep 27, 2010
  13. stash show: fix breakage in 1.7.3Jon Seymour, Sep 25, 2010
  14. stash show: fix breakage in 1.7.3Jon Seymour, Sep 25, 2010
  15. Brian GernhardtSep 25, 2010
  16. Jon SeymourSep 25, 2010
  17. Jon SeymourSep 25, 2010
  18. Jon SeymourSep 27, 2010
  19. rev-parse: stop interpreting flags as options to rev-parse once --flags is specifiedJon Seymour, Sep 25, 2010
  20. Jon SeymourSep 25, 2010
  21. Jon SeymourSep 25, 2010
  22. Junio C HamanoSep 26, 2010
  23. Jon SeymourSep 26, 2010
  24. 0/3 rev-parse: allow --flags to output rev-parse-like flagsJon Seymour, Sep 26, 2010
  25. 1/3 rev-parse: update Documentation of --flagsJon Seymour, Sep 26, 2010
  26. 2/3 rev-parse: add tests for git rev-parse --flags.Jon Seymour, Sep 26, 2010
  27. 3/3 rev-parse: stop interpreting flags as options to rev-parse once --flags is specifiedJon Seymour, Sep 26, 2010

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.