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

Re: [PATCH v2] grep: add configuration variables for --heading

From
Junio C Hamano <gitster@pobox.com>
Date
May 27, 2020, 16:45 UTC
Message-ID
<xmqqeer5mina.fsf@gitster.c.googlers.com>
In-Reply-To
<C5PlGbi78_QpceNrgFm_-Wt6BooqbntaL8OdH7XjxjXCtyIfsisyeOQMslLOwNY68Dg7iUxGIvzLPAvUEWyMIC0GdpTgeWwgwD5sWlsyrSM=@emersion.fr>
Simon Ser <contact@emersion.fr> writes:
Show 24 quoted lines
> There are already configuration variables for -n and --column. Add one
> for --heading, allowing users to customize the default behaviour.
>
> Signed-off-by: Simon Ser <contact@emersion.fr>
> ---
>
> v2: add a test
>
>  Documentation/git-grep.txt | 3 +++
>  grep.c                     | 5 +++++
>  t/t7810-grep.sh            | 5 +++++
>  3 files changed, 13 insertions(+)
>
> diff --git a/Documentation/git-grep.txt b/Documentation/git-grep.txt
> index a7f9bc99eaf1..ed4f05d885a2 100644
> --- a/Documentation/git-grep.txt
> +++ b/Documentation/git-grep.txt
> @@ -47,6 +47,9 @@ grep.lineNumber::
>  grep.column::
>  	If set to true, enable the `--column` option by default.
>  
> +grep.heading::
> +	If set to true, enable the `--heading` option by default.
> +
OK.
Naturally it follows that a command-line option
	$ git config grep.heading yes
	$ git grep --no-heading -e pattern

is a way to countermand the configured default per invocation basis.

Show 13 quoted lines
> diff --git a/t/t7810-grep.sh b/t/t7810-grep.sh
> index 991d5bd9c03f..1acc6fe89c51 100755
> --- a/t/t7810-grep.sh
> +++ b/t/t7810-grep.sh
> @@ -1556,6 +1556,11 @@ test_expect_success 'grep --heading' '
>  	test_cmp expected actual
>  '
>  
> +test_expect_success 'grep with grep.heading=true' '
> +	git -c grep.heading=true grep -e char -e lo_w hello.c hello_world >actual &&
> +	test_cmp expected actual
> +'
> +

When writing new tests, we often get too excited and stop at showing off how well the shiny new feature works, but we should make sure that we test the "negative" case, too, i.e. that the "feature" can be disabled when the user does not want to trigger it, and that the "feature" notices incorrect invocations and fails appropriately.

E.g.
	git -c grep.heading=yes grep --no-heading ...
should not leave the opt->heading true, and
	git -c grep.heading=nonsense grep ...

should fail, saying "grep.heading must be a bool" (or something along that line).

Thanks.
>  cat >expected <<EOF
>  <BOLD;GREEN>hello.c<RESET>
>  4:int main(int argc, const <BLACK;BYELLOW>char<RESET> **argv)
Previous: Simon SerNext: Simon Ser
Message 4 of 6 in “grep: add configuration variables for --heading”
  1. grep: add configuration variables for --headingSimon Ser, May 26, 2020
  2. Eric SunshineMay 26, 2020
  3. grep: add configuration variables for --headingSimon Ser, May 27, 2020
  4. Junio C HamanoMay 27, 2020
  5. Simon SerJun 8, 2020
  6. Phillip WoodJun 8, 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.