From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>, "Jeff King" <peff@peff.net>,
"brian m . carlson" <sandals@crustytoothpaste.net>,
"Eric Sunshine" <sunshine@sunshineco.com>,
"Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH v3 00/10] make "mktag" use fsck_tag()
Date: Wed, 9 Dec 2020 21:01:30 +0100 [thread overview]
Message-ID: <20201209200140.29425-1-avarab@gmail.com> (raw)
In-Reply-To: <20201126222257.5629-1-avarab@gmail.com>
This version should address all the comments Junio made on v2. Changes:
* The whole "extra" fsck option is gone, I just didn't realize I
could set the new check to "ignore", and then manually promote it.
* Ejected "mktag: reword write_object_file() error". It was the same
phrasing as "git tag" uses, let's just keep it.
* Clarifications in docs/commit messages
* There's 2 extra patches at the end now which take the first steps
into making "git mktag" more of a normal builtin. It reads fsck.*
config variables, so you can turn off that "no extra headers" check
through the normal fsck.<msg-id>=ignore config.
It should also be moved to getopts, and we could make it support
--no-strict to have the same idea of error/warning as fsck itself,
but that's #leftoverbits, along with moving it to i18n.
It would be nice to have patches 1-8 merged down if they're deemed
ready, and if 9-10 aren't deemed wanted just discard them. I think
it makes sense though...
Ævar Arnfjörð Bjarmason (10):
mktag doc: say <hash> not <sha1>
mktag: use default strbuf_read() hint
mktag: remove redundant braces in one-line body "if"
mktag tests: don't needlessly use a subshell
mktag tests: remove needless SHA-1 hardcoding
mktag tests: improve verify_object() test coverage
mktag: use fsck instead of custom verify_tag()
mktag doc: update to explain why to use this
fsck: make fsck_config() re-usable
mktag: allow turning off fsck.extraHeaderEntry
Documentation/git-hash-object.txt | 4 +
Documentation/git-mktag.txt | 34 ++++-
builtin/fsck.c | 20 +--
builtin/mktag.c | 204 +++++++++---------------------
fsck.c | 57 ++++++++-
fsck.h | 16 +++
t/t1006-cat-file.sh | 2 +-
t/t3800-mktag.sh | 132 ++++++++++++++-----
8 files changed, 261 insertions(+), 208 deletions(-)
Range-diff:
1: f46abb37df9 = 1: aee3f52a478 mktag doc: say <hash> not <sha1>
2: 1b4d9a53302 = 2: 6e98557709a mktag: use default strbuf_read() hint
3: 83f4af6013e < -: ----------- mktag: reword write_object_file() error
4: bca1484ed96 = 3: 8e5fe08f155 mktag: remove redundant braces in one-line body "if"
5: ac7c4097c90 = 4: 1f06b9c0cf9 mktag tests: don't needlessly use a subshell
6: 5e076659e45 ! 5: 5d1cb73ca35 mktag tests: remove needless SHA-1 hardcoding
@@ t/t3800-mktag.sh: EOF
############################################################
-# 3. object line SHA1 check
-+# 3. object line SHA check
++# 3. object line hash check
cat >tag.sig <<EOF
-object zz9e9b33986b1c2670fff52c5067603117b3e895
7: a048c3e6401 ! 6: cf86f4ca37d mktag tests: improve verify_object() test coverage
@@ t/t3800-mktag.sh: check_verify_failure '"type" line type-name length check' \
############################################################
-# 9. verify object (SHA1/type) check
-+# 9. verify object (SHA/type) check
++# 9. verify object (hash/type) check
cat >tag.sig <<EOF
object $(test_oid deadbeef)
@@ t/t3800-mktag.sh: check_verify_failure '"type" line type-name length check' \
+
+EOF
+
-+check_verify_failure 'verify object (SHA/type) check -- correct type, nonexisting object' \
++check_verify_failure 'verify object (hash/type) check -- correct type, nonexisting object' \
+ '^error: char7: could not verify object.*$'
+
+cat >tag.sig <<EOF
@@ t/t3800-mktag.sh: check_verify_failure '"type" line type-name length check' \
EOF
-check_verify_failure 'verify object (SHA1/type) check' \
-+check_verify_failure 'verify object (SHA/type) check -- made-up type, nonexisting object' \
++check_verify_failure 'verify object (hash/type) check -- made-up type, nonexisting object' \
+ '^fatal: invalid object type'
+
+cat >tag.sig <<EOF
@@ t/t3800-mktag.sh: check_verify_failure '"type" line type-name length check' \
+
+EOF
+
-+check_verify_failure 'verify object (SHA/type) check -- incorrect type, valid object' \
++check_verify_failure 'verify object (hash/type) check -- incorrect type, valid object' \
'^error: char7: could not verify object.*$'
+cat >tag.sig <<EOF
@@ t/t3800-mktag.sh: check_verify_failure '"type" line type-name length check' \
+
+EOF
+
-+check_verify_failure 'verify object (SHA/type) check -- incorrect type, valid object' \
++check_verify_failure 'verify object (hash/type) check -- incorrect type, valid object' \
+ '^error: char7: could not verify object'
+
############################################################
8: dab44d32359 < -: ----------- fsck: add new "extra" checks for "mktag"
9: 8ff853caeea ! 7: 5812ee53c97 mktag: use fsck instead of custom verify_tag()
@@ Commit message
back to the same commit[1]. Let's unify them so we're not maintaining
two sets functions to verify that a tag is OK.
- Moving to fsck_tag() required teaching it to optionally use some
- validations that only the old mktag code could perform. That was done
- in an earlier commit, the "extraHeaderEntry" and
- "extraHeaderBodyNewline" tests being added here make use of that
- logic.
+ The behavior of fsck_tag() and the old "mktag" code being removed here
+ is different in few aspects.
- There was other "mktag" validation logic that I think makes sense to
- just remove. Namely:
+ I think it makes sense to remove some of those checks, namely:
A. fsck only cares that the timezone matches [-+][0-9]{4}. The mktag
code disallowed values larger than 1400.
@@ Commit message
C. Like B, but "mktag" disallowed spaces in the <email> part, fsck
allows it.
- We didn't only lose obscure validation logic, we also gained some:
+ In some ways fsck_tag() is stricter than "mktag" was, namely:
D. fsck disallows zero-padded dates, but mktag didn't care. So
e.g. the timestamp "0000000000 +0000" produces an error now. A
test in "t1006-cat-file.sh" relied on this, it's been changed to
use "hash-object" (without fsck) instead.
+ There was one check I deemed worth keeping by porting it over to
+ fsck_tag():
+
+ E. "mktag" did not allow any custom headers, and by extension (as an
+ empty commit is allowed) also forbade an extra stray trailing
+ newline after the headers it knew about.
+
+ Add a new check in the "ignore" category to fsck and use it. This
+ somewhat abuses the facility added in efaba7cc77f (fsck:
+ optionally ignore specific fsck issues completely, 2015-06-22).
+
+ This is somewhat of hack, but probably the least invasive change
+ we can make here. The fsck command will shuffle these categories
+ around, e.g. under --strict the "info" becomes a "warn" and "warn"
+ becomes "error". Existing users of fsck's (and others,
+ e.g. index-pack) --strict option rely on this.
+
+ So we need to put something into a category that'll be ignored by
+ all existing users of the API. Pretending that
+ fsck.extraHeaderEntry=error ("ignore" by default) was set serves
+ to do this for us.
+
1. ec4465adb38 (Add "tag" objects that can be used to sign other
objects., 2005-04-25)
@@ builtin/mktag.c
+ switch (msg_type) {
+ case FSCK_WARN:
+ case FSCK_ERROR:
-+ case FSCK_EXTRA:
+ /*
+ * We treat both warnings and errors as errors, things
+ * like missing "tagger" lines are "only" warnings
@@ builtin/mktag.c: int cmd_mktag(int argc, const char **argv, const char *prefix)
- "object <sha1>\ntype\ntagger " */
- if (verify_tag(buf.buf, buf.len) < 0)
- die("invalid tag signature file");
-+ fsck_options.extra = 1;
+ fsck_options.error_func = mktag_fsck_error_func;
++ fsck_set_msg_type(&fsck_options, "extraheaderentry", "warn");
+ if (fsck_tag_standalone(NULL, buf.buf, buf.len, &fsck_options,
+ &tagged_oid, &tagged_type))
+ die("tag on stdin did not pass our strict fsck check");
@@ builtin/mktag.c: int cmd_mktag(int argc, const char **argv, const char *prefix)
+ die("tag on stdin did not refer to a valid object");
if (write_object_file(buf.buf, buf.len, tag_type, &result) < 0)
- die("unable to write annotated tag object");
+ die("unable to write tag file");
## fsck.c ##
+@@ fsck.c: static struct oidset gitmodules_done = OIDSET_INIT;
+ /* infos (reported as warnings, but ignored by default) */ \
+ FUNC(GITMODULES_PARSE, INFO) \
+ FUNC(BAD_TAG_NAME, INFO) \
+- FUNC(MISSING_TAGGER_ENTRY, INFO)
++ FUNC(MISSING_TAGGER_ENTRY, INFO) \
++ /* ignored (elevated when requested) */ \
++ FUNC(EXTRA_HEADER_ENTRY, IGNORE)
+
+ #define MSG_ID(id, msg_type) FSCK_MSG_##id,
+ enum fsck_msg_id {
@@ fsck.c: static int fsck_tag(const struct object_id *oid, const char *buffer,
unsigned long size, struct fsck_options *options)
{
@@ fsck.c: static int fsck_tag(const struct object_id *oid, const char *buffer,
ret = report(options, oid, OBJ_TAG, FSCK_MSG_BAD_TYPE, "invalid 'type' value");
if (ret)
goto done;
+@@ fsck.c: static int fsck_tag(const struct object_id *oid, const char *buffer,
+ else
+ ret = fsck_ident(&buffer, oid, OBJ_TAG, options);
+
++ if (!starts_with(buffer, "\n")) {
++ /*
++ * The verify_headers() check will allow
++ * e.g. "[...]tagger <tagger>\nsome
++ * garbage\n\nmessage" to pass, thinking "some
++ * garbage" could be a custom header. E.g. "mktag"
++ * doesn't want any unknown headers.
++ */
++ ret = report(options, oid, OBJ_TAG, FSCK_MSG_EXTRA_HEADER_ENTRY, "invalid format - extra header(s) after 'tagger'");
++ if (ret)
++ goto done;
++ }
++
+ done:
+ strbuf_release(&sb);
+ return ret;
## fsck.h ##
@@ fsck.h: int fsck_walk(struct object *obj, void *data, struct fsck_options *options);
@@ t/t3800-mktag.sh: tagger . <> 0 +0000
+check_verify_failure '"object" line label check' '^error:.* missingObject:'
############################################################
- # 3. object line SHA check
+ # 3. object line hash check
@@ t/t3800-mktag.sh: tagger . <> 0 +0000
EOF
@@ t/t3800-mktag.sh: tag mytag
+ '^error:.* badType:'
############################################################
- # 9. verify object (SHA/type) check
+ # 9. verify object (hash/type) check
@@ t/t3800-mktag.sh: tagger . <> 0 +0000
EOF
- check_verify_failure 'verify object (SHA/type) check -- correct type, nonexisting object' \
+ check_verify_failure 'verify object (hash/type) check -- correct type, nonexisting object' \
- '^error: char7: could not verify object.*$'
+ '^fatal: could not read tagged object'
@@ t/t3800-mktag.sh: tagger . <> 0 +0000
@@ t/t3800-mktag.sh: tagger . <> 0 +0000
EOF
- check_verify_failure 'verify object (SHA/type) check -- made-up type, nonexisting object' \
+ check_verify_failure 'verify object (hash/type) check -- made-up type, nonexisting object' \
- '^fatal: invalid object type'
+ '^error:.* badType:'
@@ t/t3800-mktag.sh: tagger . <> 0 +0000
@@ t/t3800-mktag.sh: tagger . <> 0 +0000
EOF
- check_verify_failure 'verify object (SHA/type) check -- incorrect type, valid object' \
+ check_verify_failure 'verify object (hash/type) check -- incorrect type, valid object' \
- '^error: char7: could not verify object.*$'
+ '^error:.* badType:'
@@ t/t3800-mktag.sh: tagger . <> 0 +0000
@@ t/t3800-mktag.sh: tagger . <> 0 +0000
EOF
- check_verify_failure 'verify object (SHA/type) check -- incorrect type, valid object' \
+ check_verify_failure 'verify object (hash/type) check -- incorrect type, valid object' \
- '^error: char7: could not verify object'
+ '^fatal: object.*tagged as.*tree.*but is.*commit'
@@ t/t3800-mktag.sh: this line should not be here
+tagger T A Gger <tagger@example.com> 1206478233 -0500
+
+
-+this line should be one line up
++this line comes after an extra newline
+EOF
+
-+check_verify_failure 'detect invalid header entry' \
-+ '^error:.* extraHeaderBodyNewline:'
++test_expect_success \
++ 'allow extra newlines at start of body' \
++ 'git mktag <tag.sig >.git/refs/tags/mytag 2>message'
############################################################
# 24. create valid tag
10: e38feefd3f8 ! 8: fa04664f7f1 mktag doc: update to explain why to use this
@@ Documentation/git-mktag.txt: SYNOPSIS
+Reads a tag contents on standard input and creates a tag object. The
+output is the new tag's <object> identifier.
+
-+This command accepts a subset of what linkgit:git-hash-object[1] would
-+accept with `-t tag --stdin`. I.e. both of these work:
++This command is mostly equivalent to linkgit:git-hash-object[1]
++invoked with `-t tag -w --stdin`. I.e. both of these will create and
++write a tag found in `my-tag`:
+
+ git mktag <my-tag
-+ git hash-object -t tag --stdin <my-tag
++ git hash-object -t tag -w --stdin <my-tag
+
-+The difference between the two is that mktag does the equivalent of a
-+linkgit:git-fsck(1) check on its input, and furthermore disallows some
-+thing linkgit:git-hash-object[1] would pass, e.g. extra headers in the
-+object before the message.
++The difference is that mktag will die before writing the tag if the
++tag doesn't pass a linkgit:git-fsck[1] check.
++
++The "fsck" check done mktag is is stricter than what
++linkgit:git-fsck[1] would run by default in that all `fsck.<msg-id>`
++messages are promoted from warnings to errors (so e.g. a missing
++"tagger" line is an error). Extra headers in the object are also an
++error under mktag, but ignored by linkgit:git-fsck[1].
Tag Format
----------
@@ Documentation/git-mktag.txt: exists, is separated by a blank line from the heade
message part may contain a signature that Git itself doesn't
care about, but that can be verified with gpg.
-+HISTORY
-+-------
-+
-+In versions of Git before v2.30.0 the "mktag" command's validation
-+logic was subtly different than that of linkgit:git-fsck[1]. It is now
-+a strict superset of linkgit:git-fsck[1]'s validation logic.
-+
+SEE ALSO
+--------
+linkgit:git-hash-object[1],
-: ----------- > 9: 30eff9170fb fsck: make fsck_config() re-usable
-: ----------- > 10: 11139ec2b8d mktag: allow turning off fsck.extraHeaderEntry
--
2.29.2.222.g5d2a92d10f8
next prev parent reply other threads:[~2020-12-09 20:05 UTC|newest]
Thread overview: 229+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-18 19:16 [PATCH 00/14] Hash-independent tests, part 5 brian m. carlson
2019-08-18 19:16 ` [PATCH 01/14] t3201: abstract away SHA-1-specific constants brian m. carlson
2019-08-18 19:16 ` [PATCH 02/14] t3206: abstract away hash size constants brian m. carlson
2019-08-18 19:16 ` [PATCH 03/14] t3301: abstract away SHA-1-specific constants brian m. carlson
2019-08-18 19:16 ` [PATCH 04/14] t3305: make hash size independent brian m. carlson
2019-08-18 19:16 ` [PATCH 05/14] t3306: abstract away SHA-1-specific constants brian m. carlson
2019-08-18 19:16 ` [PATCH 06/14] t3404: " brian m. carlson
2019-08-18 19:16 ` [PATCH 07/14] t3430: avoid hard-coded object IDs brian m. carlson
2019-08-18 19:16 ` [PATCH 08/14] t3506: make hash independent brian m. carlson
2019-08-18 19:16 ` [PATCH 09/14] t3600: make hash size independent brian m. carlson
2019-08-18 19:16 ` [PATCH 10/14] t3800: make hash-size independent brian m. carlson
2019-08-18 19:16 ` [PATCH 11/14] t3903: abstract away SHA-1-specific constants brian m. carlson
2019-08-18 20:27 ` Eric Sunshine
2019-08-18 20:34 ` brian m. carlson
2019-08-18 19:16 ` [PATCH 12/14] t4000: make hash size independent brian m. carlson
2019-08-18 19:16 ` [PATCH 13/14] t4002: make hash independent brian m. carlson
2019-08-18 20:29 ` Eric Sunshine
2019-08-18 19:16 ` [PATCH 14/14] t4009: make hash size independent brian m. carlson
2019-08-26 1:43 ` [PATCH v2 00/14] Hash-independent tests, part 5 brian m. carlson
2019-08-26 1:43 ` [PATCH v2 01/14] t3201: abstract away SHA-1-specific constants brian m. carlson
2019-08-26 1:43 ` [PATCH v2 02/14] t3206: abstract away hash size constants brian m. carlson
2019-08-26 1:43 ` [PATCH v2 03/14] t3301: abstract away SHA-1-specific constants brian m. carlson
2019-08-26 1:43 ` [PATCH v2 04/14] t3305: make hash size independent brian m. carlson
2019-08-26 1:43 ` [PATCH v2 05/14] t3306: abstract away SHA-1-specific constants brian m. carlson
2019-08-26 1:43 ` [PATCH v2 06/14] t3404: " brian m. carlson
2019-08-26 1:43 ` [PATCH v2 07/14] t3430: avoid hard-coded object IDs brian m. carlson
2019-08-26 1:43 ` [PATCH v2 08/14] t3506: make hash independent brian m. carlson
2019-08-26 1:43 ` [PATCH v2 09/14] t3600: make hash size independent brian m. carlson
2019-08-26 1:43 ` [PATCH v2 10/14] t3800: make hash-size independent brian m. carlson
2020-11-23 12:01 ` [PATCH] mktag: don't check SHA-1 object length under SHA-256 Ævar Arnfjörð Bjarmason
2020-11-23 19:01 ` Junio C Hamano
2020-11-23 21:36 ` Jeff King
2020-11-23 22:17 ` Junio C Hamano
2020-11-24 0:47 ` Jeff King
2020-11-23 21:34 ` Jeff King
2020-11-24 1:07 ` brian m. carlson
2020-11-26 1:28 ` [RFC/PATCH 00/12] make "mktag" use fsck_tag() Ævar Arnfjörð Bjarmason
2020-11-26 22:22 ` [PATCH v2 00/10] " Ævar Arnfjörð Bjarmason
2020-12-01 10:08 ` Ævar Arnfjörð Bjarmason
2020-12-01 20:01 ` Junio C Hamano
2020-12-02 22:20 ` Junio C Hamano
2020-12-03 16:38 ` Ævar Arnfjörð Bjarmason
2020-12-09 20:01 ` Ævar Arnfjörð Bjarmason [this message]
2020-12-09 22:30 ` [PATCH v3 " Junio C Hamano
2020-12-23 1:35 ` [PATCH v4 00/20] make "mktag" use fsck_tag() & more Ævar Arnfjörð Bjarmason
2020-12-23 13:54 ` Junio C Hamano
2020-12-24 9:16 ` Junio C Hamano
2021-01-05 19:42 ` [PATCH v5 00/23] " Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 01/23] mktag doc: say <hash> not <sha1> Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 02/23] mktag doc: grammar fix, when exists -> when it exists Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 03/23] mktag doc: update to explain why to use this Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 04/23] mktag tests: don't needlessly use a subshell Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 05/23] mktag tests: use "test_commit" helper Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 06/23] mktag tests: remove needless SHA-1 hardcoding Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 07/23] mktag tests: don't redirect stderr to a file needlessly Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 08/23] mktag tests: don't create "mytag" twice Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 09/23] mktag tests: run "fsck" after creating "mytag" Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 10/23] mktag tests: stress test whitespace handling Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 11/23] mktag tests: test "hash-object" compatibility Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 12/23] mktag tests: improve verify_object() test coverage Ævar Arnfjörð Bjarmason
2021-01-10 13:21 ` SZEDER Gábor
2021-01-10 18:59 ` Should you use test_i18ngrep or GIT_TEST_GETTEXT_POISON=false? Ævar Arnfjörð Bjarmason
2021-01-10 20:12 ` Junio C Hamano
2021-01-11 8:43 ` Ævar Arnfjörð Bjarmason
2021-01-11 13:14 ` [PATCH 0/2] Makefile & gettext.c: remove warning & long comment Ævar Arnfjörð Bjarmason
2021-01-11 21:06 ` Junio C Hamano
2021-01-11 13:14 ` [PATCH 1/2] Makefile: remove a warning about old GETTEXT_POISON flag Ævar Arnfjörð Bjarmason
2021-01-11 13:14 ` [PATCH 2/2] gettext.c: remove/reword a mostly-useless comment Ævar Arnfjörð Bjarmason
2021-01-11 14:47 ` [PATCH 0/6] Remove GIT_TEST_GETTEXT_POISON facility Ævar Arnfjörð Bjarmason
2021-01-20 15:33 ` SZEDER Gábor
2021-01-20 18:13 ` Ævar Arnfjörð Bjarmason
2021-01-20 18:27 ` [PATCH v2 0/3] " Ævar Arnfjörð Bjarmason
2021-02-11 1:53 ` [PATCH 0/4] More GETTEXT_POISON removal Ævar Arnfjörð Bjarmason
2021-02-11 1:53 ` [PATCH 1/4] tests: remove last uses of GIT_TEST_GETTEXT_POISON=false Ævar Arnfjörð Bjarmason
2021-03-07 13:29 ` [PATCH] mktag tests: fix broken "&&" chain Ævar Arnfjörð Bjarmason
2021-03-07 16:36 ` SZEDER Gábor
2021-03-07 20:43 ` Junio C Hamano
2021-03-07 20:52 ` Eric Sunshine
2021-03-24 2:11 ` [PATCH v2] " Ævar Arnfjörð Bjarmason
2021-03-24 19:57 ` Junio C Hamano
2021-02-11 1:53 ` [PATCH 2/4] tests: remove most uses of C_LOCALE_OUTPUT Ævar Arnfjörð Bjarmason
2021-02-11 1:53 ` [PATCH 3/4] tests: remove last " Ævar Arnfjörð Bjarmason
2021-02-11 1:53 ` [PATCH 4/4] tests: remove most uses of test_i18ncmp Ævar Arnfjörð Bjarmason
2021-02-11 17:32 ` Junio C Hamano
2021-02-13 14:31 ` Ævar Arnfjörð Bjarmason
2021-02-19 21:25 ` Jonathan Nieder
2021-04-13 12:19 ` [PATCH] tests: remove all uses of test_i18cmp Ævar Arnfjörð Bjarmason
2021-04-13 12:28 ` [PATCH 0/2] diff tests: un-flaky and post-gettext-poison cleanup Ævar Arnfjörð Bjarmason
2021-04-13 12:28 ` [PATCH 1/2] diff tests: remove redundant case statement Ævar Arnfjörð Bjarmason
2021-04-13 14:18 ` Matheus Tavares Bernardino
2021-04-13 14:23 ` Ævar Arnfjörð Bjarmason
2021-04-13 12:28 ` [PATCH 2/2] diff tests: rewrite flakyness-causing test "aid" Ævar Arnfjörð Bjarmason
2021-04-13 14:44 ` Matheus Tavares Bernardino
2021-04-13 19:01 ` Ævar Arnfjörð Bjarmason
2021-04-13 19:55 ` Matheus Tavares Bernardino
2021-04-13 21:55 ` Junio C Hamano
2021-04-14 6:22 ` Ævar Arnfjörð Bjarmason
2021-04-14 6:35 ` Junio C Hamano
2021-04-14 7:38 ` Ævar Arnfjörð Bjarmason
2021-04-14 7:53 ` Junio C Hamano
2021-04-14 10:08 ` Ævar Arnfjörð Bjarmason
2021-04-15 8:14 ` Junio C Hamano
2021-04-15 13:21 ` Ævar Arnfjörð Bjarmason
2021-04-16 18:32 ` Junio C Hamano
2021-04-15 21:26 ` SZEDER Gábor
2021-04-13 21:42 ` [PATCH 0/2] diff tests: un-flaky and post-gettext-poison cleanup Junio C Hamano
2021-01-20 18:27 ` [PATCH v2 1/3] ci: remove GETTEXT_POISON jobs Ævar Arnfjörð Bjarmason
2021-01-20 18:27 ` [PATCH v2 2/3] tests: remove support for GIT_TEST_GETTEXT_POISON Ævar Arnfjörð Bjarmason
2021-01-20 18:27 ` [PATCH v2 3/3] tests: remove uses of GIT_TEST_GETTEXT_POISON=false Ævar Arnfjörð Bjarmason
2021-01-11 14:47 ` [PATCH 1/6] ci: remove GETTEXT_POISON jobs Ævar Arnfjörð Bjarmason
2021-01-12 8:50 ` SZEDER Gábor
2021-01-20 17:59 ` Ævar Arnfjörð Bjarmason
2021-01-20 19:14 ` SZEDER Gábor
2021-01-27 0:47 ` Ævar Arnfjörð Bjarmason
2021-02-01 22:04 ` SZEDER Gábor
2021-02-03 12:13 ` Ævar Arnfjörð Bjarmason
2021-02-03 21:24 ` SZEDER Gábor
2021-01-11 14:47 ` [PATCH 2/6] tests: remove support for GIT_TEST_GETTEXT_POISON Ævar Arnfjörð Bjarmason
2021-01-11 21:54 ` Junio C Hamano
2021-03-24 23:36 ` [PATCH] config.c: remove last remnant of GIT_TEST_GETTEXT_POISON Ævar Arnfjörð Bjarmason
2021-03-25 0:36 ` Jeff King
2021-03-25 1:13 ` Ævar Arnfjörð Bjarmason
2021-03-25 20:02 ` Junio C Hamano
2021-04-08 13:25 ` [PATCH v2] " Ævar Arnfjörð Bjarmason
2021-04-08 17:55 ` Junio C Hamano
2021-01-11 14:47 ` [PATCH 3/6] tests: remove misc use of test_i18n{cmp,grep} Ævar Arnfjörð Bjarmason
2021-01-11 14:47 ` [PATCH 4/6] tests: (almost) remove use of "test_i18ngrep !" Ævar Arnfjörð Bjarmason
2021-01-11 14:47 ` [PATCH 5/6] tests: (almost) remove C_LOCALE_OUTPUT prerequisites Ævar Arnfjörð Bjarmason
2021-01-11 14:47 ` [PATCH 6/6] tests: remove uses of GIT_TEST_GETTEXT_POISON=false Ævar Arnfjörð Bjarmason
2021-01-11 21:05 ` Should you use test_i18ngrep or GIT_TEST_GETTEXT_POISON=false? Junio C Hamano
2021-01-12 11:22 ` Jeff King
2021-01-20 15:21 ` SZEDER Gábor
2021-01-05 19:42 ` [PATCH v5 13/23] mktag tests: test verify_object() with replaced objects Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 14/23] mktag: use default strbuf_read() hint Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 15/23] mktag: remove redundant braces in one-line body "if" Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 16/23] mktag: use puts(str) instead of printf("%s\n", str) Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 17/23] mktag: use fsck instead of custom verify_tag() Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 18/23] fsck: make fsck_config() re-usable Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 19/23] mktag: allow turning off fsck.extraHeaderEntry Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 20/23] mktag: allow omitting the header/body \n separator Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 21/23] mktag: convert to parse-options Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 22/23] mktag: mark strings for translation Ævar Arnfjörð Bjarmason
2021-01-05 19:42 ` [PATCH v5 23/23] mktag: add a --no-strict option Ævar Arnfjörð Bjarmason
2021-01-06 1:48 ` Junio C Hamano
2021-01-06 11:47 ` [PATCH v6 23/23] mktag: add a --[no-]strict option Ævar Arnfjörð Bjarmason
2021-01-06 22:21 ` Junio C Hamano
2021-01-07 7:45 ` Ævar Arnfjörð Bjarmason
2020-12-23 1:35 ` [PATCH v4 01/20] mktag doc: say <hash> not <sha1> Ævar Arnfjörð Bjarmason
2020-12-23 1:35 ` [PATCH v4 02/20] mktag doc: grammar fix, when exists -> when it exists Ævar Arnfjörð Bjarmason
2020-12-23 1:35 ` [PATCH v4 03/20] mktag doc: update to explain why to use this Ævar Arnfjörð Bjarmason
2020-12-23 1:57 ` Junio C Hamano
2020-12-23 1:35 ` [PATCH v4 04/20] mktag tests: don't needlessly use a subshell Ævar Arnfjörð Bjarmason
2020-12-23 1:35 ` [PATCH v4 05/20] mktag tests: remove needless SHA-1 hardcoding Ævar Arnfjörð Bjarmason
2020-12-23 1:35 ` [PATCH v4 06/20] mktag tests: improve verify_object() test coverage Ævar Arnfjörð Bjarmason
2020-12-23 2:04 ` Junio C Hamano
2020-12-23 1:35 ` [PATCH v4 07/20] mktag tests: don't pipe to stderr needlessly Ævar Arnfjörð Bjarmason
2020-12-23 2:10 ` Junio C Hamano
2020-12-23 1:35 ` [PATCH v4 08/20] mktag tests: don't create "mytag" twice Ævar Arnfjörð Bjarmason
2020-12-23 2:18 ` Junio C Hamano
2020-12-23 1:35 ` [PATCH v4 09/20] mktag tests: stress test whitespace handling Ævar Arnfjörð Bjarmason
2020-12-23 2:27 ` Junio C Hamano
2020-12-23 1:35 ` [PATCH v4 10/20] mktag tests: test "hash-object" compatibility Ævar Arnfjörð Bjarmason
2020-12-23 2:29 ` Junio C Hamano
2020-12-23 1:35 ` [PATCH v4 11/20] mktag: use default strbuf_read() hint Ævar Arnfjörð Bjarmason
2020-12-23 1:35 ` [PATCH v4 12/20] mktag: remove redundant braces in one-line body "if" Ævar Arnfjörð Bjarmason
2020-12-23 1:35 ` [PATCH v4 13/20] mktag: use puts(str) instead of printf("%s\n", str) Ævar Arnfjörð Bjarmason
2020-12-23 1:35 ` [PATCH v4 14/20] mktag: use fsck instead of custom verify_tag() Ævar Arnfjörð Bjarmason
2020-12-23 13:34 ` Junio C Hamano
2020-12-23 1:36 ` [PATCH v4 15/20] fsck: make fsck_config() re-usable Ævar Arnfjörð Bjarmason
2020-12-23 1:36 ` [PATCH v4 16/20] mktag: allow turning off fsck.extraHeaderEntry Ævar Arnfjörð Bjarmason
2020-12-23 22:09 ` SZEDER Gábor
2020-12-23 1:36 ` [PATCH v4 17/20] mktag: allow omitting the header/body \n separator Ævar Arnfjörð Bjarmason
2020-12-23 1:36 ` [PATCH v4 18/20] mktag: convert to parse-options Ævar Arnfjörð Bjarmason
2020-12-23 1:36 ` [PATCH v4 19/20] mktag: mark strings for translation Ævar Arnfjörð Bjarmason
2020-12-23 1:36 ` [PATCH v4 20/20] mktag: add a --no-strict option Ævar Arnfjörð Bjarmason
2020-12-23 11:54 ` Junio C Hamano
2020-12-23 22:20 ` SZEDER Gábor
2020-12-09 20:01 ` [PATCH v3 01/10] mktag doc: say <hash> not <sha1> Ævar Arnfjörð Bjarmason
2020-12-09 20:01 ` [PATCH v3 02/10] mktag: use default strbuf_read() hint Ævar Arnfjörð Bjarmason
2020-12-09 20:01 ` [PATCH v3 03/10] mktag: remove redundant braces in one-line body "if" Ævar Arnfjörð Bjarmason
2020-12-09 20:01 ` [PATCH v3 04/10] mktag tests: don't needlessly use a subshell Ævar Arnfjörð Bjarmason
2020-12-09 20:01 ` [PATCH v3 05/10] mktag tests: remove needless SHA-1 hardcoding Ævar Arnfjörð Bjarmason
2020-12-09 20:01 ` [PATCH v3 06/10] mktag tests: improve verify_object() test coverage Ævar Arnfjörð Bjarmason
2020-12-09 20:01 ` [PATCH v3 07/10] mktag: use fsck instead of custom verify_tag() Ævar Arnfjörð Bjarmason
2020-12-09 20:01 ` [PATCH v3 08/10] mktag doc: update to explain why to use this Ævar Arnfjörð Bjarmason
2020-12-09 20:01 ` [PATCH v3 09/10] fsck: make fsck_config() re-usable Ævar Arnfjörð Bjarmason
2020-12-09 20:01 ` [PATCH v3 10/10] mktag: allow turning off fsck.extraHeaderEntry Ævar Arnfjörð Bjarmason
2020-11-26 22:22 ` [PATCH v2 01/10] mktag doc: say <hash> not <sha1> Ævar Arnfjörð Bjarmason
2020-12-01 20:17 ` Junio C Hamano
2020-11-26 22:22 ` [PATCH v2 02/10] mktag: use default strbuf_read() hint Ævar Arnfjörð Bjarmason
2020-12-01 20:19 ` Junio C Hamano
2020-11-26 22:22 ` [PATCH v2 03/10] mktag: reword write_object_file() error Ævar Arnfjörð Bjarmason
2020-12-01 20:20 ` Junio C Hamano
2020-12-01 20:49 ` Junio C Hamano
2020-11-26 22:22 ` [PATCH v2 04/10] mktag: remove redundant braces in one-line body "if" Ævar Arnfjörð Bjarmason
2020-11-26 22:22 ` [PATCH v2 05/10] mktag tests: don't needlessly use a subshell Ævar Arnfjörð Bjarmason
2020-11-26 22:22 ` [PATCH v2 06/10] mktag tests: remove needless SHA-1 hardcoding Ævar Arnfjörð Bjarmason
2020-12-01 20:24 ` Junio C Hamano
2020-11-26 22:22 ` [PATCH v2 07/10] mktag tests: improve verify_object() test coverage Ævar Arnfjörð Bjarmason
2020-11-26 22:22 ` [PATCH v2 08/10] fsck: add new "extra" checks for "mktag" Ævar Arnfjörð Bjarmason
2020-12-01 20:33 ` Junio C Hamano
2020-11-26 22:22 ` [PATCH v2 09/10] mktag: use fsck instead of custom verify_tag() Ævar Arnfjörð Bjarmason
2020-12-01 20:47 ` Junio C Hamano
2020-12-01 22:28 ` Junio C Hamano
2020-11-26 22:22 ` [PATCH v2 10/10] mktag doc: update to explain why to use this Ævar Arnfjörð Bjarmason
2020-12-01 20:59 ` Junio C Hamano
2020-11-26 1:28 ` [RFC/PATCH 01/12] mktag: use default strbuf_read() hint Ævar Arnfjörð Bjarmason
2020-11-26 1:28 ` [RFC/PATCH 02/12] mktag: reword write_object_file() error Ævar Arnfjörð Bjarmason
2020-11-26 1:28 ` [RFC/PATCH 03/12] mktag: remove redundant braces in one-line body "if" Ævar Arnfjörð Bjarmason
2020-11-26 1:28 ` [RFC/PATCH 04/12] mktag tests: don't needlessly use a subshell Ævar Arnfjörð Bjarmason
2020-11-26 1:28 ` [RFC/PATCH 05/12] mktag tests: remove needless SHA-1 hardcoding Ævar Arnfjörð Bjarmason
2020-11-26 7:49 ` Jeff King
2020-11-26 1:28 ` [RFC/PATCH 06/12] mktag tests: improve verify_object() test coverage Ævar Arnfjörð Bjarmason
2020-11-26 1:28 ` [RFC/PATCH 07/12] fsck: add new "extra" checks for "mktag" Ævar Arnfjörð Bjarmason
2020-11-26 8:02 ` Jeff King
2020-11-26 12:43 ` Ævar Arnfjörð Bjarmason
2020-11-26 1:28 ` [RFC/PATCH 08/12] mktag: use fsck instead of custom verify_tag() Ævar Arnfjörð Bjarmason
2020-11-26 8:17 ` Jeff King
2020-11-26 12:46 ` Ævar Arnfjörð Bjarmason
2020-11-26 1:28 ` [RFC/PATCH 09/12] mktag: remove now-unused verify_tag() code Ævar Arnfjörð Bjarmason
2020-11-26 8:20 ` Jeff King
2020-11-26 1:28 ` [RFC/PATCH 10/12] mktag doc: update to explain why to use this Ævar Arnfjörð Bjarmason
2020-11-26 1:28 ` [RFC/PATCH 11/12] mktag docs: say <hash> not <sha1> Ævar Arnfjörð Bjarmason
2020-11-26 1:28 ` [RFC/PATCH 12/12] mktag: bring back some of the verify_object() logic Ævar Arnfjörð Bjarmason
2020-11-26 8:32 ` Jeff King
2019-08-26 1:43 ` [PATCH v2 11/14] t3903: abstract away SHA-1-specific constants brian m. carlson
2019-08-26 1:43 ` [PATCH v2 12/14] t4000: make hash size independent brian m. carlson
2019-08-26 1:43 ` [PATCH v2 13/14] t4002: make hash independent brian m. carlson
2019-08-26 1:43 ` [PATCH v2 14/14] t4009: make hash size independent brian m. carlson
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201209200140.29425-1-avarab@gmail.com \
--to=avarab@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
--cc=sandals@crustytoothpaste.net \
--cc=sunshine@sunshineco.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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).