On Wed, Dec 23, 2020 at 02:36:01AM +0100, Ævar Arnfjörð Bjarmason wrote: > In earlier commits mktag learned to use the fsck machinery, at which > point we needed to add fsck.extraHeaderEntry so it could be as strict > about extra headers as it's been ever since it was implemented. > > But it's not nice to need to switch away from "mktag" to "hash-object" > + manual "fsck" just because you'd like to have an extra header. So > let's support turning it off by getting "fsck.*" variables from the > config. > > Pedantically speaking it's still not possible to make "mktag" behave > just like "hash-object -t tag" does, since we're unconditionally going > to check the referenced object in verify_object_in_tag(), which is our > own check, and not one that exists in fsck.c. > > But the spirit of "this works like fsck" is preserved, in that if you > created such a tag with "hash-object" and did a full "fsck" on the > repository it would also error out about that invalid object, it just > wouldn't emit the same message as fsck does. > > Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> > --- > diff --git a/t/t3800-mktag.sh b/t/t3800-mktag.sh > index d20adf0544..1019b42378 100755 > --- a/t/t3800-mktag.sh > +++ b/t/t3800-mktag.sh > @@ -377,6 +377,20 @@ EOF > check_verify_failure 'detect invalid header entry' \ > '^error:.* extraHeaderEntry:' > > +test_expect_success 'invalid header entry config & fsck' ' > + test_must_fail git mktag <tag.sig && > + test_must_fail git -c fsck.extraHeaderEntry=error mktag <tag.sig && > + test_must_fail git -c fsck.extraHeaderEntry=warn mktag <tag.sig && > + git -c fsck.extraHeaderEntry=ignore mktag <tag.sig && > + git fsck && > + env GIT_TEST_GETTEXT_POISON=false \ Why this 'env GIT_TEST_GETTEXT_POISON=false' here... > + git -c fsck.extraHeaderEntry=warn fsck 2>err && > + grep "warning .*extraHeaderEntry:" err && ... instead of test_i18ngrep here? > + test_must_fail env GIT_TEST_GETTEXT_POISON=false \ > + git -c fsck.extraHeaderEntry=error 2>err fsck && > + grep "error .* extraHeaderEntry:" err > +' > + > cat >tag.sig <<EOF > object $head > type commit > -- > 2.29.2.222.g5d2a92d10f8 >