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

Re: [PATCH 2/7] help -a: do not list commands that are excluded from the build

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Apr 18, 2019, 12:06 UTC
Message-ID
<nycvar.QRO.7.76.6.1904181403330.46@tvgsbejvaqbjf.bet>
In-Reply-To
<xmqqo957sq2g.fsf@gitster-ct.c.googlers.com>
Hi Junio,
On Mon, 15 Apr 2019, Junio C Hamano wrote:
Show 32 quoted lines
> "Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
> writes:
>
> >  SCRIPT_DEFINES = $(SHELL_PATH_SQ):$(DIFF_SQ):$(GIT_VERSION):\
> >  	$(localedir_SQ):$(NO_CURL):$(USE_GETTEXT_SCHEME):$(SANE_TOOL_PATH_SQ):\
> > diff --git a/generate-cmdlist.sh b/generate-cmdlist.sh
> > index 709d67405b..7867b99d19 100755
> > --- a/generate-cmdlist.sh
> > +++ b/generate-cmdlist.sh
> > @@ -6,7 +6,7 @@ die () {
> >  }
> >
> >  command_list () {
> > -	grep -v '^#' "$1"
> > +	eval grep -ve '^#' $exclude_programs "$1"
>
> The original protects against $IFS in the filename given as $1, but
> with the eval that is no longer true.  We have been feeding the
> constant "command-list.txt" to the program since its inception, and
> I do not expect it to change, so this regression in defensiveness
> does not matter in practice.  Also because # is prefixed with ^, the
> unintended loss of quotes around it when the eval makes the shell
> re-parse the generated command line would not make the remainder
> into a comment.
>
> But it does look brittle, and smells like a trap for less
> experienced shell programmers to blindly copy & paste & tweak
> without understanding what is going on, leading to bugs.
>
> 	eval "grep -v -e '^#' $exclude_programs" <"$1"
>
> or something like that, perhaps?
Yes! Thank you.
Show 9 quoted lines
> > @@ -93,6 +93,14 @@ EOF
> >  EOF
> >  }
> >
> > +exclude_programs=
> > +while test "a$1" = "a--exclude-program"
>
> s/a/z/g; if you want to pretend to be old-fashioned, but s/a//g;
> should be sufficient in the modern world.

Don't you know, I always used "a" without realizing. You can see my misdeed even in git-rebase--preserve-merges.sh. I won't fix it there, though, as I hope that it'll be gone soon enough.

Will be fixed in the next iteration I send.

Thanks, Dscho

Previous: Junio C HamanoNext: Johannes Schindelin via GitGitGadget
Message 7 of 41 in “Assorted Documentation-related fixes”
  1. 0/7 Assorted Documentation-related fixesJohannes Schindelin via GitGitGadget, Apr 12, 2019
  2. 1/7 remote-testgit: move it into the support directory for t5801Johannes Schindelin via GitGitGadget, Apr 12, 2019
  3. Junio C HamanoApr 15, 2019
  4. Johannes SchindelinApr 18, 2019
  5. 2/7 help -a: do not list commands that are excluded from the buildJohannes Schindelin via GitGitGadget, Apr 12, 2019
  6. Junio C HamanoApr 15, 2019
  7. Johannes SchindelinApr 18, 2019
  8. 4/7 docs: exclude documentation for commands that have been excludedJohannes Schindelin via GitGitGadget, Apr 12, 2019
  9. Eric SunshineApr 12, 2019
  10. Junio C HamanoApr 15, 2019
  11. Eric SunshineApr 15, 2019
  12. Eric SunshineApr 15, 2019
  13. Johannes SchindelinApr 18, 2019
  14. Jeff KingApr 15, 2019
  15. Junio C HamanoApr 16, 2019
  16. Johannes SchindelinApr 18, 2019
  17. Jeff KingApr 18, 2019
  18. 3/7 check-docs: do not pretend that commands are listed which are excludedJohannes Schindelin via GitGitGadget, Apr 12, 2019
  19. Junio C HamanoApr 15, 2019
  20. Johannes SchindelinApr 18, 2019
  21. 7/7 Turn `git serve` into a test helperJohannes Schindelin via GitGitGadget, Apr 12, 2019
  22. Junio C HamanoApr 15, 2019
  23. Jeff KingApr 17, 2019
  24. Junio C HamanoApr 17, 2019
  25. Josh SteadmonApr 17, 2019
  26. Junio C HamanoApr 18, 2019
  27. Johannes SchindelinApr 18, 2019
  28. 6/7 test-tool: handle the `-C <directory>` option just like `git`Johannes Schindelin via GitGitGadget, Apr 12, 2019
  29. 5/7 check-docs: do not bother checking for legacy scripts' documentationJohannes Schindelin via GitGitGadget, Apr 12, 2019
  30. Junio C HamanoApr 15, 2019
  31. 0/8 Assorted Documentation-related fixesJohannes Schindelin via GitGitGadget, Apr 18, 2019
  32. 1/8 remote-testgit: move it into the support directory for t5801Johannes Schindelin via GitGitGadget, Apr 18, 2019
  33. 2/8 Makefile: drop the NO_INSTALL variableJohannes Schindelin via GitGitGadget, Apr 18, 2019
  34. 3/8 help -a: do not list commands that are excluded from the buildJohannes Schindelin via GitGitGadget, Apr 18, 2019
  35. 4/8 check-docs: allow command-list.txt to contain excluded commandsJohannes Schindelin via GitGitGadget, Apr 18, 2019
  36. 5/8 docs: exclude documentation for commands that have been excludedJohannes Schindelin via GitGitGadget, Apr 18, 2019
  37. Junio C HamanoApr 19, 2019
  38. Johannes SchindelinApr 29, 2019
  39. 6/8 check-docs: do not bother checking for legacy scripts' documentationJohannes Schindelin via GitGitGadget, Apr 18, 2019
  40. 7/8 test-tool: handle the `-C <directory>` option just like `git`Johannes Schindelin via GitGitGadget, Apr 18, 2019
  41. 8/8 Turn `git serve` into a test helperJohannes Schindelin via GitGitGadget, Apr 18, 2019

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.