All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ilya Bobyr <ilya.bobyr@gmail.com>
To: Felipe Contreras <felipe.contreras@gmail.com>
Cc: Git List <git@vger.kernel.org>
Subject: Re: [RTC/PATCH] Add 'update-branch' hook
Date: Mon, 21 Apr 2014 23:05:23 -0700	[thread overview]
Message-ID: <535606A3.8040704@gmail.com> (raw)
In-Reply-To: <53559a8333aaa_6c39e772f07f@nysa.notmuch>

On 4/21/2014 3:24 PM, Felipe Contreras wrote:
> Ilya Bobyr wrote:
>> On Mon, Apr 21, 2014 at 2:35 PM, Felipe Contreras <
>> felipe.contreras@gmail.com> wrote:
>>> Ilya Bobyr wrote:
>>>> test_expect_success 'setup' "
>>>>       mkdir -p .git/hooks &&
>>>>       cat > .git/hooks/update-branch <<-\\EOF &&
>>>>       #!/bin/sh
>>>>       echo \$@ > .git/update-branch.args
>>>>       EOF
>>>>       chmod +x .git/hooks/update-branch &&
>>>>       echo one > content &&
>>>>       git add content &&
>>>>       git commit -a -m one
>>>> "
>>> That is not maintainable at all.
>> Maybe you could explain how is this less maintainable, compared to a separate
>> function?
> Do I really have to explain that manually escaping a shell script is not
> maintainable?

This is rude.

Here is how you can do it without escaping:

test_expect_success 'setup' '
	mkdir -p .git/hooks &&
	cat > .git/hooks/update-branch <<-\EOF &&
	#!/bin/sh
	echo $@ > .git/update-branch.args
	EOF
	chmod +x .git/hooks/update-branch &&
	echo one > content &&
	git add content &&
	git commit -a -m one
'

It is not different from most of the tests, I think.

>> This is how it is suggested by t/README and how it is done in the other
>> test suites.
>> I can not see how your case is different, but I might be missing something.
> Let's take a cursoy look at `git grep -l "'EOF'" t`.
>
> [...]

So the point is that some existing tests violate best practices?
I do not think this is a good justification to do the same for new tests.

> In fact my version is actually cleaner than these, because the code that is run
> outside the cage is clearly delimited by a function.

It depends on the perspective.
If it fails, the failure would be missed regardless of if it is in a
function or not.
Most examples that you quoted only create files outside test_expect_success.
Even that is not necessary.

I am not telling you how you should write it.
I am just saying that you are breaking one of the recommendations on how
to write tests.
There are different options that adhere to the suggestions in t/README.

  reply	other threads:[~2014-04-22  6:05 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-21  2:23 [RTC/PATCH] Add 'update-branch' hook Felipe Contreras
2014-04-21  7:25 ` Eric Sunshine
2014-04-21 20:02 ` Ilya Bobyr
2014-04-21 20:49   ` Felipe Contreras
2014-04-21 21:15     ` Ilya Bobyr
2014-04-21 21:17       ` Felipe Contreras
2014-04-21 21:39         ` Ilya Bobyr
2014-04-21 21:36           ` Felipe Contreras
2014-04-22 14:43             ` Stephen Leake
2014-04-22 16:31               ` Felipe Contreras
2014-04-22 17:09                 ` Ilya Bobyr
2014-04-22 17:28                   ` Felipe Contreras
2014-04-23  7:49                 ` Stephen Leake
2014-04-23  9:07                   ` Felipe Contreras
2014-04-23 22:44                     ` Junio C Hamano
2014-04-24  1:11                       ` Felipe Contreras
2014-04-26 17:38                         ` Junio C Hamano
2014-04-26 19:28                           ` Felipe Contreras
2014-04-24 14:26                     ` Stephen Leake
2014-04-24 18:08                       ` Felipe Contreras
2014-04-21 21:52           ` Junio C Hamano
2014-04-21 22:26             ` Felipe Contreras
2014-04-21 23:00               ` Junio C Hamano
2014-04-23 21:30                 ` Felipe Contreras
2014-04-23 22:15                   ` Junio C Hamano
2014-04-24  1:00                     ` Felipe Contreras
2014-04-22  6:41     ` Ilya Bobyr
2014-04-22 16:30       ` Felipe Contreras
2014-04-21 21:17 ` Ilya Bobyr
2014-04-21 21:15   ` Felipe Contreras
2014-04-21 21:36     ` Ilya Bobyr
2014-04-21 21:35       ` Felipe Contreras
     [not found]         ` <CADcHDF+XcWEkvyP3tL4ibicnaMVJpixUZu1Ces0BXWkzPGsodw@mail.gmail.com>
2014-04-21 22:24           ` Felipe Contreras
2014-04-22  6:05             ` Ilya Bobyr [this message]
2014-04-22  6:45               ` Felipe Contreras
2014-04-22  7:00                 ` Ilya Bobyr
2014-04-22  6:56                   ` Felipe Contreras
2014-04-22  6:35 ` Ilya Bobyr
2014-04-22 16:27   ` Felipe Contreras

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=535606A3.8040704@gmail.com \
    --to=ilya.bobyr@gmail.com \
    --cc=felipe.contreras@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.