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

Re: [PATCH v4] bugreport: collect list of populated hooks

From
Emily Shaffer <emilyshaffer@google.com>
Date
May 11, 2020, 21:22 UTC
Message-ID
<20200511212205.GI77802@google.com>
In-Reply-To
<20200508013405.GA2111@danh.dev>
On Fri, May 08, 2020 at 08:34:05AM +0700, Đoàn Trần Công Danh wrote:
Show 48 quoted lines
> 
> On 2020-05-07 17:53:57-0700, Emily Shaffer <emilyshaffer@google.com> wrote:
> > +test_expect_success 'indicates populated hooks' '
> > +	test_when_finished rm git-bugreport-hooks.txt &&
> > +	test_when_finished rm -fr .git/hooks &&
> > +	rm -fr .git/hooks &&
> > +	mkdir .git/hooks &&
> > +	for hook in applypatch-msg prepare-commit-msg.sample
> > +	do
> > +		write_script ".git/hooks/$hook" <<-\EOF || return 1
> > +		echo "hook $hook exists"
> > +		EOF
> > +	done &&
> > +	git bugreport -s hooks &&
> > +	grep applypatch-msg git-bugreport-hooks.txt &&
> > +	! grep prepare-commit-msg git-bugreport-hooks.txt
> 
> Hi Emily,
> 
> I think this is a bit more correct test.
> ---------8<----------
> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
> 
> Use an exact match to check for populated hooks
> 
> Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
> ---
>  t/t0091-bugreport.sh | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/t/t0091-bugreport.sh b/t/t0091-bugreport.sh
> index 9450cc02e3..789e8f1ac7 100755
> --- a/t/t0091-bugreport.sh
> +++ b/t/t0091-bugreport.sh
> @@ -67,8 +67,13 @@ test_expect_success 'indicates populated hooks' '
>  		EOF
>  	done &&
>  	git bugreport -s hooks &&
> -	grep applypatch-msg git-bugreport-hooks.txt &&
> -	! grep prepare-commit-msg git-bugreport-hooks.txt
> +	cat <<-\EOF >expected &&
> +	applypatch-msg
> +
> +	EOF
> +	awk -F "]\\n" -v RS="[" "/applypatch-msg/{print \$2}" \
> +		git-bugreport-hooks.txt >actual &&

If I understand correctly, you are saying "look for a line like [...] which is followed by a line that says 'applypatch-msg'" - that is, making sure that you don't see some false positive should "applypatch-msg" exist in the rest of the bugreport.

Could we compromise and grep for "^applypatch-msg$", e.g. "there is a line calling out applypatch-msg in some way that isn't in the context of the report template"?

- Even though regex magic is used, ^$ are beginner regex that many
  people can understand easily.
- Using grep for a single line means we are not allergic to header
  format changes later on

It doesn't search for false positives, true, but I found your awk suggestion hard to understand - my impression is that awk is less commonly understood, even among Git contributors.

In sed, it's a little bit more readable:
  cat <<-\EOF >expected &&
  [Enabled Hooks]
  applypatch-msg
  EOF
  sed -n '/\[Enabled Hooks\]/, /^$/ p' git-bugreport-hooks.txt >actual
  test_cmp expected actual

But, I don't like this because it relies on the name of the header, and the newline spacing between sections - and would be nontrivial to change if we decided to underline headers instead, or add a newline between a header and its contents. So I think it may be overkill.

Thanks for your suggestion, though.
 - Emily
Previous: Đoàn Trần Công DanhNext: Emily Shaffer
Message 30 of 33 in “bugreport: collect list of populated hooks”
  1. bugreport: collect list of populated hooksEmily Shaffer, Apr 24, 2020
  2. Jonathan NiederApr 25, 2020
  3. bugreport: drop time.h includeEmily Shaffer, Apr 27, 2020
  4. Jonathan NiederApr 27, 2020
  5. Junio C HamanoApr 27, 2020
  6. Junio C HamanoApr 27, 2020
  7. Emily ShafferApr 27, 2020
  8. Junio C HamanoApr 27, 2020
  9. bugreport: drop extraneous includesEmily Shaffer, Apr 27, 2020
  10. Jonathan NiederApr 27, 2020
  11. Junio C HamanoApr 25, 2020
  12. Emily ShafferApr 27, 2020
  13. Junio C HamanoApr 27, 2020
  14. Emily ShafferApr 27, 2020
  15. bugreport: collect list of populated hooksEmily Shaffer, Apr 27, 2020
  16. Jonathan NiederApr 27, 2020
  17. Junio C HamanoApr 28, 2020
  18. Emily ShafferApr 30, 2020
  19. bugreport: collect list of populated hooksEmily Shaffer, Apr 30, 2020
  20. Jonathan NiederApr 30, 2020
  21. Jonathan NiederApr 30, 2020
  22. Junio C HamanoApr 30, 2020
  23. Junio C HamanoApr 30, 2020
  24. Emily ShafferMay 7, 2020
  25. Junio C HamanoMay 7, 2020
  26. Emily ShafferMay 11, 2020
  27. bugreport: collect list of populated hooksEmily Shaffer, May 8, 2020
  28. Junio C HamanoMay 8, 2020
  29. Đoàn Trần Công DanhMay 8, 2020
  30. Emily ShafferMay 11, 2020
  31. bugreport: collect list of populated hooksEmily Shaffer, May 11, 2020
  32. Jonathan NiederMay 11, 2020
  33. Junio C HamanoMay 11, 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.