From: Jonathan Nieder <jrnieder@gmail.com>
To: Emily Shaffer <emilyshaffer@google.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH v3] bugreport: collect list of populated hooks
Date: Wed, 29 Apr 2020 18:50:49 -0700 [thread overview]
Message-ID: <20200430015049.GA115238@google.com> (raw)
In-Reply-To: <20200430012425.209122-1-emilyshaffer@google.com>
Emily Shaffer wrote:
> Since v2, switched to write_script, and modified the test to check for
> uninstalled hooks and sample hooks having correct behavior.
Looks almost ready. Two nits.
[...]
> --- a/t/t0091-bugreport.sh
> +++ b/t/t0091-bugreport.sh
> @@ -57,5 +57,15 @@ test_expect_success 'can create leading directories outside of a git dir' '
> nongit git bugreport -o foo/bar/baz
> '
>
> +test_expect_success 'indicates populated hooks' '
> + test_when_finished rm git-bugreport-hooks.txt &&
> + test_when_finished rm -fr .git/hooks &&
> + mkdir .git/hooks &&
This is subtle. Since c09a69a83e3 (Disable hooks during tests,
2005-10-16), the repository in which the test runs has its "hooks"
directory renamed to "hooks-disabled", with rationale
Individual tests for hooks would want to have their own tests when
written. Also we should not pick up from random templates the user
happens to have.
That rationale is a bit strange because we explicitly passed
--template to "git init" even then, so we could be confident that the
built-in templates that do not enable any hooks would be in use.
Mailing list diving finds [1]. We didn't have f98f8cbac01 (Ship
sample hooks with .sample suffix, 2008-06-24) yet, which means that on
filesystems that do not record an executable bit, the sample hooks
were all enabled by default. Nowadays that has been fixed and we
should be able to get rid of the "mv .git/hooks .git/hooks-disabled"
in the test setup.
When we do that, this "mkdir .git/hooks" will fail because the
directory already exists. Ideas:
A. Include a preparatory patch in this series that removes that "mv"
command. That way, this test can do
test_when_finished "
rm -fr .git/hooks &&
mv .git/hooks-saved .git/hooks
" &&
mv .git/hooks .git/hooks-saved &&
mkdir .git/hooks &&
...
or even better (because of increased realism)
test_when_finished rm .git/hooks/applypatch-msg &&
write_script .git/hooks/applypatch-msg <<-\EOF &&
...
B. Run "git init" ourselves so we know what we're getting:
test_when_finished "rm -fr .git && mv .git-saved .git" &&
mv .git .git-saved &&
git init &&
...
> + write_script .git/hooks/applypatch-msg &&
write_script looks for a script on its stdin. test_eval_ redirects
stdin to come from /dev/null, so we happen to get an empty script, but
this is subtle. How about something like
write_script .git/hooks/applypatch-msg <<-\EOF &&
echo >&2 "rejecting message in $1"
exit 1
EOF
or
write_script .git/hooks/applypatch-msg </dev/null &&
?
> + write_script .git/hooks/prepare-commit-msg.sample &&
Likewise.
> + git bugreport -s hooks &&
> + grep applypatch-msg git-bugreport-hooks.txt &&
> + ! grep prepare-commit-msg git-bugreport-hooks.txt
> +'
Thanks,
Jonathan
next prev parent reply other threads:[~2020-04-30 1:50 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-24 23:38 [PATCH] bugreport: collect list of populated hooks Emily Shaffer
2020-04-25 0:30 ` Jonathan Nieder
2020-04-27 20:48 ` [PATCH] bugreport: drop time.h include Emily Shaffer
2020-04-27 21:03 ` Jonathan Nieder
2020-04-27 21:25 ` Junio C Hamano
2020-04-27 21:41 ` Junio C Hamano
2020-04-27 21:56 ` Emily Shaffer
2020-04-27 23:27 ` Junio C Hamano
2020-04-27 23:42 ` [PATCH v2] bugreport: drop extraneous includes Emily Shaffer
2020-04-27 23:46 ` Jonathan Nieder
2020-04-25 4:52 ` [PATCH] bugreport: collect list of populated hooks Junio C Hamano
2020-04-27 19:02 ` Emily Shaffer
2020-04-27 20:46 ` Junio C Hamano
2020-04-27 20:49 ` Emily Shaffer
2020-04-27 23:38 ` [PATCH v2] " Emily Shaffer
2020-04-27 23:45 ` Jonathan Nieder
2020-04-28 0:04 ` Junio C Hamano
2020-04-30 0:01 ` Emily Shaffer
2020-04-30 1:24 ` [PATCH v3] " Emily Shaffer
2020-04-30 1:50 ` Jonathan Nieder [this message]
2020-04-30 1:53 ` Jonathan Nieder
2020-04-30 17:44 ` Junio C Hamano
2020-04-30 22:09 ` Junio C Hamano
2020-05-07 21:08 ` Emily Shaffer
2020-05-07 23:06 ` Junio C Hamano
2020-05-11 21:26 ` Emily Shaffer
2020-05-08 0:53 ` [PATCH v4] " Emily Shaffer
2020-05-08 1:20 ` Junio C Hamano
2020-05-08 1:34 ` Đoàn Trần Công Danh
2020-05-11 21:22 ` Emily Shaffer
2020-05-11 22:14 ` [PATCH v5] " Emily Shaffer
2020-05-11 23:26 ` Jonathan Nieder
2020-05-11 23:45 ` Junio C Hamano
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=20200430015049.GA115238@google.com \
--to=jrnieder@gmail.com \
--cc=emilyshaffer@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).