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