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

Re: [PATCH 1/6] templates: Use heredoc in pre-commit hook

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 14, 2013, 19:20 UTC
Message-ID
<7v1u71gd7r.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1373818879-1698-2-git-send-email-richih.mailinglist@gmail.com>
Richard Hartmann <richih.mailinglist@gmail.com> writes:
> Spawning a new subprocess for every line printed is inefficient.
This is not a valid justification at all, is it?  

Shells on modern distros and platforms have "echo" built-in, so this patch replaces series of writes internal to the shell with a fork to cat with heredoc (which often is implemented with a temporary file).

Show 45 quoted lines
> Use heredoc, instead.
>
> Based on 98770971aef8d1cbc78876d9023d10aa25df0526 in original patch
> series from 2013-06-10.
>
> Signed-off-by: Richard Hartmann <richih.mailinglist@gmail.com>
> ---
>  templates/hooks--pre-commit.sample |   25 +++++++++++++------------
>  1 file changed, 13 insertions(+), 12 deletions(-)
>
> diff --git a/templates/hooks--pre-commit.sample b/templates/hooks--pre-commit.sample
> index 18c4829..889967c 100755
> --- a/templates/hooks--pre-commit.sample
> +++ b/templates/hooks--pre-commit.sample
> @@ -31,18 +31,19 @@ if [ "$allownonascii" != "true" ] &&
>  	test $(git diff --cached --name-only --diff-filter=A -z $against |
>  	  LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
>  then
> -	echo "Error: Attempt to add a non-ascii file name."
> -	echo
> -	echo "This can cause problems if you want to work"
> -	echo "with people on other platforms."
> -	echo
> -	echo "To be portable it is advisable to rename the file ..."
> -	echo
> -	echo "If you know what you are doing you can disable this"
> -	echo "check using:"
> -	echo
> -	echo "  git config hooks.allownonascii true"
> -	echo
> +	cat <<-EOF
> +Error: Attempt to add a non-ascii file name.
> +
> +This can cause problems if you want to work
> +with people on other platforms.
> +
> +To be portable it is advisable to rename the file.
> +
> +If you know what you are doing you can disable this
> +check using:
> +
> +  git config hooks.allownonascii true
> +EOF
>  	exit 1
>  fi
Previous: Junio C HamanoNext: Richard Hartmann
Message 22 of 35 in “Janitorial work on hook templates”
  1. 0/4 Janitorial work on hook templatesRichard Hartmann, Jun 10, 2013
  2. 1/6 templates: Fewer subprocesses in pre-commit hookRichard Hartmann, Jun 10, 2013
  3. Junio C HamanoJun 10, 2013
  4. Richard HartmannJun 10, 2013
  5. Jeff KingJun 10, 2013
  6. 2/6 templates: Reformat pre-commit hook's messageRichard Hartmann, Jun 10, 2013
  7. Junio C HamanoJun 10, 2013
  8. 3/6 templates: Fix spelling in pre-commit hookRichard Hartmann, Jun 10, 2013
  9. 4/6 Documentation: Update manpage for pre-commit hookRichard Hartmann, Jun 10, 2013
  10. 5/6 templates: Fix ASCII art in pre-rebase hookRichard Hartmann, Jun 10, 2013
  11. Junio C HamanoJun 10, 2013
  12. Jeff KingJun 10, 2013
  13. 6/6 template: Fix comment indentation in pre-rebase hookRichard Hartmann, Jun 10, 2013
  14. Junio C HamanoJun 10, 2013
  15. Richard HartmannJun 10, 2013
  16. Junio C HamanoJun 10, 2013
  17. Richard HartmannJun 10, 2013
  18. 0/6 Update to janitorial work on hook templatesRichard Hartmann, Jul 14, 2013
  19. 1/6 templates: Use heredoc in pre-commit hookRichard Hartmann, Jul 14, 2013
  20. Jonathan NiederJul 14, 2013
  21. Junio C HamanoJul 15, 2013
  22. Junio C HamanoJul 14, 2013
  23. Richard HartmannJul 14, 2013
  24. Jonathan NiederJul 14, 2013
  25. Junio C HamanoJul 15, 2013
  26. 2/6 templates: Reformat pre-commit hook's messageRichard Hartmann, Jul 14, 2013
  27. Jonathan NiederJul 14, 2013
  28. 3/6 templates: Fix spelling in pre-commit hookRichard Hartmann, Jul 14, 2013
  29. 4/6 Documentation: Update manpage for pre-commit hookRichard Hartmann, Jul 14, 2013
  30. Jonathan NiederJul 14, 2013
  31. Junio C HamanoJul 15, 2013
  32. 5/6 templates: Fix ASCII art in pre-rebase hookRichard Hartmann, Jul 14, 2013
  33. Jonathan NiederJul 14, 2013
  34. 6/6 template: Fix comment indentation in pre-rebase hookRichard Hartmann, Jul 14, 2013
  35. Jonathan NiederJul 14, 2013

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.