git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2] diff tests: rewrite flakyness-causing test "aid"

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Apr 14, 2021, 10:08 UTC
Message-ID
<87y2dl18mg.fsf@evledraar.gmail.com>
In-Reply-To
<xmqqblahz4hx.fsf@gitster.g>
On Wed, Apr 14 2021, Junio C Hamano wrote:
["tl;dr" below]:
Show 34 quoted lines
> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
>
>>>> Thus if we do:
>>>>
>>>>     git something >expected &&
>>>>     test_cmp expected actual &&
>>>>     rm expected actual
>>>
>>> Isn't it a poor example to use to argue for your particular change,
>>> where $actual in the original is designed to be unique among tests,
>>> in order to ensure that $actual files left after test pieces fail
>>> would not interfere with the tests that come later?  IOW, there is
>>> not a reason to remove $actual until the end of the test sequence,
>>> is there?
>>
>> Not really, because you needed to read the rest of the test file to come
>> to that conclusion.
>>
>> The point of using a helper that guarantees cleanup such as
>> test_when_finished or test_config over manual "git config" or "git rm"
>> isn't that we can prove that we need it because a later test needs the
>> cleanup, but that anyone can add new tests or functionality without
>> having to worry about cleaning up the existing trash directory.
>>
>> So yes, it's not needed here, but that's only because we know the rest
>> of the tests don't have e.g. a test that does a:
>
> In this particular case, $actual files are designed to be left
> behind for failed test pieces, so that the tester can come back and
> inspect them.  I probably should have said it a bit more strongly
> than "there is not a reason to remove".  You SHOULD NOT remove and
> that is why we had "check and then remove only upon success" there,
> instead of test_when_finished.  We want them left for and only for
> failing test pieces.

Yes, it's clear that it's designed to do that. I'm not disagreeing on the intent of your commit in 2006 to set it up this way.

What I am saying is that it's incompatible to have:
 1. Failing tests
 2. Not removing scratch files that would otherwise be removed
And:
 3. Knowing that the rest of the tests pass in the case of #1 without
    reading them all.

Hence the suggestion that we should use test_when_finished without exception for such patterns.

Because consistently using the helper would allow us to smartly get #1 and #2 without #3, i.e. some "copy them for later analysis" as suggested upthread in: http://lore.kernel.org/git/874kg92xn0.fsf@evledraar.gmail.com

> Please do not advocate for and encourage newbies who would be
> reading the discussion from sidelines to use test_when_finished out
> of dogmatic principle without thinking.

Is Matheus the newbie here? I think he's contributed enough to form his own opinion.

I think it's clear to anyone else reading from the sidelines that we're having some informed disagreement about a finer point of patterns in the test suite.

I doubt either one of us is likely to have much of an impact on newbies reading from the sidelines.

In any case, I don't see how you're able to read this thread and come to the conclusion that I'm proposing the use of test_when_finished out of "[some] dogmatic principle".

I'm not. I'm proposing to use it because I think it makes sense, and I think the reasons you've noted for avoiding it in this case have more downsides than upsites, as noted in the #1-3 examples above.

> Even though there are valid cases where test_when_finished is the
> perfect fit, in this particular case, use of it is a clear regression.
Well, I disagree with you.
I think even if the patch I was proposing was a mere conversion to
test_when_finished as would be typical for most newly written tests,
i.e. a diff like this:
	
	diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh
	index 6cca8b84a6b..d0031aa0f7b 100755
	--- a/t/t4013-diff-various.sh
	+++ b/t/t4013-diff-various.sh
	@@ -204,6 +204,7 @@ do
	 	actual="$pfx-diff.$test"
	 
	 	test_expect_$status "git $cmd # magic is ${magic:-(not used)}" '
	+		test_when_finished "rm \"$actual\"" &&
	 		{
	 			echo "$ git $cmd"
	 			case "$magic" in
	@@ -216,22 +217,11 @@ do
	 			    -e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
	 			echo "\$"
	 		} >"$actual" &&
	-		if test -f "$expect"
	-		then
	-			process_diffs "$actual" >actual &&
	-			process_diffs "$expect" >expect &&
	-			case $cmd in
	-			*format-patch* | *-stat*)
	-				test_cmp expect actual;;
	-			*)
	-				test_cmp expect actual;;
	-			esac &&
	-			rm -f "$actual" actual expect
	-		else
	-			# this is to help developing new tests.
	-			cp "$actual" "$expect"
	-			false
	-		fi
	+		test_when_finished "rm actual" &&
	+		process_diffs "$actual" >actual &&
	+		test_when_finished "rm expect" &&
	+		process_diffs "$expect" >expect &&
	+		test_cmp expect actual
	 	'
	 done <<\EOF
	 diff-tree initial

It's a clear improvement, because, on current master, emulating the case when you add a new test-case:

    $ rm t4013/diff.log_-GF_-p_--pickaxe-all_master
Now run it once:
    $ ./t4013-diff-various.sh
    [...]
    # failed 1 among 199 test(s)
And then to debug it:
    $ ./t4013-diff-various.sh -vixd
    [...]
    # passed all 199 test(s)

So because we copied the file around the only get the failure the first time around.

You might rightly say that we could have narrowly just fixed that
particular bug and kept the old "copy and return false", so something
like:
	
	diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh
	index 6cca8b84a6b..6f0f3c7f53c 100755
	--- a/t/t4013-diff-various.sh
	+++ b/t/t4013-diff-various.sh
	@@ -229,7 +229,7 @@ do
	 			rm -f "$actual" actual expect
	 		else
	 			# this is to help developing new tests.
	-			cp "$actual" "$expect"
	+			cp "$actual" "$expect.MAYBE-USE-THIS"
	 			false
	 		fi
	 	'

But as noted above that gets us into needing to worry about cascading failure. I.e. any new test added later in the file needs to think about "what if the t4013 directory is in this state?".

We also document what we'll do and how we'll do it in t/README in this
case:
	
	--immediate::
		This causes the test to immediately exit upon the first
		failed test. Cleanup commands requested with
		test_when_finished are not executed if the test failed,
		in order to keep the state for inspection by the tester
		to diagnose the bug.

So it's much more obvious and consistent to have a failure that ends on the test_cmp and being able to see the test_when_finished for the intermediate files in the trace output.

The hypothetical newbie might have debugged such a pattern already, but not having it end in a special-case used only for this test:

    [...]
    + test -f /home/avar/g/git/t/t4013/diff.log_-GF_-p_--pickaxe-all_master
    + cp 0096-diff.log_-GF_-p_--pickaxe-all_master /home/avar/g/git/t/t4013/diff.log_-GF_-p_--pickaxe-all_master.MAYBE-USE-THIS
    + false
In any case, neither one of those is the patch I'm suggesting upthread.

I am suggesting not just to use test_when_finished, but that we should use BUG here. Since not having the file itself is a bug in git's test suite, not a mere failure of the test case. The test will never pass if the file doesn't exist.

So even if I agreed with you that the more narrow migration to test_when_finished would be a regression, I don't see how you think *this* patch could be a regression.

You seem to just be focusing on the test_when_finished part of it, but that's not all it's doing. Since we also use BUG the output is now:

    $ ./t4013-diff-various.sh 
    [...]
    error: bug in the test script: Have no "t4013/diff.log_-GF_-p_--pickaxe-all_master", new test? [...]

I.e. whether we used "rm" or "cp" or "test_when_finished 'rm [...]'" earlier has become irrelevant to achieve the states aims in 3c2f75b590c (t4013: add tests for diff/log family output options., 2006-06-26).

It doesn't matter how we're removing/copying etc. the file anymore, that's no longer how we're helping the user debug the test.

tl;dr:

In any case, I think it's best to just drop this series. I wrote the above more as a synopsis of what I belive we should be doing in general, I do have some patches queued up to address the general debug-ability of our test output (e.g. for CI).

For that end-goal having e.g. test_when_finished (mostly) consistently used would help a lot, but not using it in any one test would be fine. This is just one such case, and something I thought wouldn't be a controversial patch.

I think at this point me trying to gleaming entrails of what you want & you responding back is going to take both of us much more time than replacing this series with a patch you'd be happy with, and this wasn't something I cared about more than a one-off.

Previous: Junio C HamanoNext: Junio C Hamano
Message 123 of 229 in “Hash-independent tests, part 5”
  1. 00/14 Hash-independent tests, part 5brian m. carlson, Aug 18, 2019
  2. 01/14 t3201: abstract away SHA-1-specific constantsbrian m. carlson, Aug 18, 2019
  3. 02/14 t3206: abstract away hash size constantsbrian m. carlson, Aug 18, 2019
  4. 04/14 t3305: make hash size independentbrian m. carlson, Aug 18, 2019
  5. 03/14 t3301: abstract away SHA-1-specific constantsbrian m. carlson, Aug 18, 2019
  6. 05/14 t3306: abstract away SHA-1-specific constantsbrian m. carlson, Aug 18, 2019
  7. 06/14 t3404: abstract away SHA-1-specific constantsbrian m. carlson, Aug 18, 2019
  8. 07/14 t3430: avoid hard-coded object IDsbrian m. carlson, Aug 18, 2019
  9. 08/14 t3506: make hash independentbrian m. carlson, Aug 18, 2019
  10. 10/14 t3800: make hash-size independentbrian m. carlson, Aug 18, 2019
  11. 11/14 t3903: abstract away SHA-1-specific constantsbrian m. carlson, Aug 18, 2019
  12. Eric SunshineAug 18, 2019
  13. brian m. carlsonAug 18, 2019
  14. 12/14 t4000: make hash size independentbrian m. carlson, Aug 18, 2019
  15. 13/14 t4002: make hash independentbrian m. carlson, Aug 18, 2019
  16. Eric SunshineAug 18, 2019
  17. 14/14 t4009: make hash size independentbrian m. carlson, Aug 18, 2019
  18. 09/14 t3600: make hash size independentbrian m. carlson, Aug 18, 2019
  19. 00/14 Hash-independent tests, part 5brian m. carlson, Aug 26, 2019
  20. 01/14 t3201: abstract away SHA-1-specific constantsbrian m. carlson, Aug 26, 2019
  21. 04/14 t3305: make hash size independentbrian m. carlson, Aug 26, 2019
  22. 03/14 t3301: abstract away SHA-1-specific constantsbrian m. carlson, Aug 26, 2019
  23. 02/14 t3206: abstract away hash size constantsbrian m. carlson, Aug 26, 2019
  24. 07/14 t3430: avoid hard-coded object IDsbrian m. carlson, Aug 26, 2019
  25. 05/14 t3306: abstract away SHA-1-specific constantsbrian m. carlson, Aug 26, 2019
  26. 08/14 t3506: make hash independentbrian m. carlson, Aug 26, 2019
  27. 06/14 t3404: abstract away SHA-1-specific constantsbrian m. carlson, Aug 26, 2019
  28. 09/14 t3600: make hash size independentbrian m. carlson, Aug 26, 2019
  29. 10/14 t3800: make hash-size independentbrian m. carlson, Aug 26, 2019
  30. mktag: don't check SHA-1 object length under SHA-256Ævar Arnfjörð Bjarmason, Nov 23, 2020
  31. Junio C HamanoNov 23, 2020
  32. Jeff KingNov 23, 2020
  33. Junio C HamanoNov 23, 2020
  34. Jeff KingNov 24, 2020
  35. Jeff KingNov 23, 2020
  36. brian m. carlsonNov 24, 2020
  37. 01/12 mktag: use default strbuf_read() hintÆvar Arnfjörð Bjarmason, Nov 26, 2020
  38. 00/12 make "mktag" use fsck_tag()Ævar Arnfjörð Bjarmason, Nov 26, 2020
  39. 02/10 mktag: use default strbuf_read() hintÆvar Arnfjörð Bjarmason, Nov 26, 2020
  40. Junio C HamanoDec 1, 2020
  41. 04/10 mktag: remove redundant braces in one-line body "if"Ævar Arnfjörð Bjarmason, Nov 26, 2020
  42. 03/10 mktag: reword write_object_file() errorÆvar Arnfjörð Bjarmason, Nov 26, 2020
  43. Junio C HamanoDec 1, 2020
  44. Junio C HamanoDec 1, 2020
  45. 00/10 make "mktag" use fsck_tag()Ævar Arnfjörð Bjarmason, Nov 26, 2020
  46. Ævar Arnfjörð BjarmasonDec 1, 2020
  47. Junio C HamanoDec 1, 2020
  48. Junio C HamanoDec 2, 2020
  49. Ævar Arnfjörð BjarmasonDec 3, 2020
  50. 02/10 mktag: use default strbuf_read() hintÆvar Arnfjörð Bjarmason, Dec 9, 2020
  51. 01/10 mktag doc: say <hash> not <sha1>Ævar Arnfjörð Bjarmason, Dec 9, 2020
  52. 03/10 mktag: remove redundant braces in one-line body "if"Ævar Arnfjörð Bjarmason, Dec 9, 2020
  53. 06/10 mktag tests: improve verify_object() test coverageÆvar Arnfjörð Bjarmason, Dec 9, 2020
  54. 10/10 mktag: allow turning off fsck.extraHeaderEntryÆvar Arnfjörð Bjarmason, Dec 9, 2020
  55. 08/10 mktag doc: update to explain why to use thisÆvar Arnfjörð Bjarmason, Dec 9, 2020
  56. 09/10 fsck: make fsck_config() re-usableÆvar Arnfjörð Bjarmason, Dec 9, 2020
  57. 07/10 mktag: use fsck instead of custom verify_tag()Ævar Arnfjörð Bjarmason, Dec 9, 2020
  58. 00/10 make "mktag" use fsck_tag()Ævar Arnfjörð Bjarmason, Dec 9, 2020
  59. Junio C HamanoDec 9, 2020
  60. 01/20 mktag doc: say <hash> not <sha1>Ævar Arnfjörð Bjarmason, Dec 23, 2020
  61. 00/20 make "mktag" use fsck_tag() & moreÆvar Arnfjörð Bjarmason, Dec 23, 2020
  62. Junio C HamanoDec 23, 2020
  63. Junio C HamanoDec 24, 2020
  64. 00/23 make "mktag" use fsck_tag() & moreÆvar Arnfjörð Bjarmason, Jan 5, 2021
  65. 01/23 mktag doc: say <hash> not <sha1>Ævar Arnfjörð Bjarmason, Jan 5, 2021
  66. 03/23 mktag doc: update to explain why to use thisÆvar Arnfjörð Bjarmason, Jan 5, 2021
  67. 04/23 mktag tests: don't needlessly use a subshellÆvar Arnfjörð Bjarmason, Jan 5, 2021
  68. 02/23 mktag doc: grammar fix, when exists -> when it existsÆvar Arnfjörð Bjarmason, Jan 5, 2021
  69. 06/23 mktag tests: remove needless SHA-1 hardcodingÆvar Arnfjörð Bjarmason, Jan 5, 2021
  70. 05/23 mktag tests: use "test_commit" helperÆvar Arnfjörð Bjarmason, Jan 5, 2021
  71. 07/23 mktag tests: don't redirect stderr to a file needlesslyÆvar Arnfjörð Bjarmason, Jan 5, 2021
  72. 08/23 mktag tests: don't create "mytag" twiceÆvar Arnfjörð Bjarmason, Jan 5, 2021
  73. 11/23 mktag tests: test "hash-object" compatibilityÆvar Arnfjörð Bjarmason, Jan 5, 2021
  74. 13/23 mktag tests: test verify_object() with replaced objectsÆvar Arnfjörð Bjarmason, Jan 5, 2021
  75. 12/23 mktag tests: improve verify_object() test coverageÆvar Arnfjörð Bjarmason, Jan 5, 2021
  76. SZEDER GáborJan 10, 2021
  77. Should you use test_i18ngrep or GIT_TEST_GETTEXT_POISON=false?Ævar Arnfjörð Bjarmason, Jan 10, 2021
  78. Junio C HamanoJan 10, 2021
  79. Ævar Arnfjörð BjarmasonJan 11, 2021
  80. 0/2 Makefile & gettext.c: remove warning & long commentÆvar Arnfjörð Bjarmason, Jan 11, 2021
  81. Junio C HamanoJan 11, 2021
  82. 2/2 gettext.c: remove/reword a mostly-useless commentÆvar Arnfjörð Bjarmason, Jan 11, 2021
  83. 1/2 Makefile: remove a warning about old GETTEXT_POISON flagÆvar Arnfjörð Bjarmason, Jan 11, 2021
  84. 2/6 tests: remove support for GIT_TEST_GETTEXT_POISONÆvar Arnfjörð Bjarmason, Jan 11, 2021
  85. Junio C HamanoJan 11, 2021
  86. config.c: remove last remnant of GIT_TEST_GETTEXT_POISONÆvar Arnfjörð Bjarmason, Mar 24, 2021
  87. Jeff KingMar 25, 2021
  88. Ævar Arnfjörð BjarmasonMar 25, 2021
  89. Junio C HamanoMar 25, 2021
  90. config.c: remove last remnant of GIT_TEST_GETTEXT_POISONÆvar Arnfjörð Bjarmason, Apr 8, 2021
  91. Junio C HamanoApr 8, 2021
  92. 0/6 Remove GIT_TEST_GETTEXT_POISON facilityÆvar Arnfjörð Bjarmason, Jan 11, 2021
  93. SZEDER GáborJan 20, 2021
  94. Ævar Arnfjörð BjarmasonJan 20, 2021
  95. 3/3 tests: remove uses of GIT_TEST_GETTEXT_POISON=falseÆvar Arnfjörð Bjarmason, Jan 20, 2021
  96. 2/3 tests: remove support for GIT_TEST_GETTEXT_POISONÆvar Arnfjörð Bjarmason, Jan 20, 2021
  97. 0/3 Remove GIT_TEST_GETTEXT_POISON facilityÆvar Arnfjörð Bjarmason, Jan 20, 2021
  98. 1/4 tests: remove last uses of GIT_TEST_GETTEXT_POISON=falseÆvar Arnfjörð Bjarmason, Feb 11, 2021
  99. mktag tests: fix broken "&&" chainÆvar Arnfjörð Bjarmason, Mar 7, 2021
  100. SZEDER GáborMar 7, 2021
  101. Junio C HamanoMar 7, 2021
  102. Eric SunshineMar 7, 2021
  103. mktag tests: fix broken "&&" chainÆvar Arnfjörð Bjarmason, Mar 24, 2021
  104. Junio C HamanoMar 24, 2021
  105. 3/4 tests: remove last uses of C_LOCALE_OUTPUTÆvar Arnfjörð Bjarmason, Feb 11, 2021
  106. 0/4 More GETTEXT_POISON removalÆvar Arnfjörð Bjarmason, Feb 11, 2021
  107. 2/4 tests: remove most uses of C_LOCALE_OUTPUTÆvar Arnfjörð Bjarmason, Feb 11, 2021
  108. 4/4 tests: remove most uses of test_i18ncmpÆvar Arnfjörð Bjarmason, Feb 11, 2021
  109. Junio C HamanoFeb 11, 2021
  110. Ævar Arnfjörð BjarmasonFeb 13, 2021
  111. Jonathan NiederFeb 19, 2021
  112. tests: remove all uses of test_i18cmpÆvar Arnfjörð Bjarmason, Apr 13, 2021
  113. 0/2 diff tests: un-flaky and post-gettext-poison cleanupÆvar Arnfjörð Bjarmason, Apr 13, 2021
  114. 2/2 diff tests: rewrite flakyness-causing test "aid"Ævar Arnfjörð Bjarmason, Apr 13, 2021
  115. Matheus Tavares BernardinoApr 13, 2021
  116. Ævar Arnfjörð BjarmasonApr 13, 2021
  117. Matheus Tavares BernardinoApr 13, 2021
  118. Junio C HamanoApr 13, 2021
  119. Ævar Arnfjörð BjarmasonApr 14, 2021
  120. Junio C HamanoApr 14, 2021
  121. Ævar Arnfjörð BjarmasonApr 14, 2021
  122. Junio C HamanoApr 14, 2021
  123. Ævar Arnfjörð BjarmasonApr 14, 2021
  124. Junio C HamanoApr 15, 2021
  125. Ævar Arnfjörð BjarmasonApr 15, 2021
  126. Junio C HamanoApr 16, 2021
  127. SZEDER GáborApr 15, 2021
  128. 1/2 diff tests: remove redundant case statementÆvar Arnfjörð Bjarmason, Apr 13, 2021
  129. Matheus Tavares BernardinoApr 13, 2021
  130. Ævar Arnfjörð BjarmasonApr 13, 2021
  131. Junio C HamanoApr 13, 2021
  132. 1/3 ci: remove GETTEXT_POISON jobsÆvar Arnfjörð Bjarmason, Jan 20, 2021
  133. 1/6 ci: remove GETTEXT_POISON jobsÆvar Arnfjörð Bjarmason, Jan 11, 2021
  134. SZEDER GáborJan 12, 2021
  135. Ævar Arnfjörð BjarmasonJan 20, 2021
  136. SZEDER GáborJan 20, 2021
  137. Ævar Arnfjörð BjarmasonJan 27, 2021
  138. SZEDER GáborFeb 1, 2021
  139. Ævar Arnfjörð BjarmasonFeb 3, 2021
  140. SZEDER GáborFeb 3, 2021
  141. 3/6 tests: remove misc use of test_i18n{cmp,grep}Ævar Arnfjörð Bjarmason, Jan 11, 2021
  142. 6/6 tests: remove uses of GIT_TEST_GETTEXT_POISON=falseÆvar Arnfjörð Bjarmason, Jan 11, 2021
  143. 4/6 tests: (almost) remove use of "test_i18ngrep !"Ævar Arnfjörð Bjarmason, Jan 11, 2021
  144. 5/6 tests: (almost) remove C_LOCALE_OUTPUT prerequisitesÆvar Arnfjörð Bjarmason, Jan 11, 2021
  145. Junio C HamanoJan 11, 2021
  146. Jeff KingJan 12, 2021
  147. SZEDER GáborJan 20, 2021
  148. 09/23 mktag tests: run "fsck" after creating "mytag"Ævar Arnfjörð Bjarmason, Jan 5, 2021
  149. 10/23 mktag tests: stress test whitespace handlingÆvar Arnfjörð Bjarmason, Jan 5, 2021
  150. 14/23 mktag: use default strbuf_read() hintÆvar Arnfjörð Bjarmason, Jan 5, 2021
  151. 15/23 mktag: remove redundant braces in one-line body "if"Ævar Arnfjörð Bjarmason, Jan 5, 2021
  152. 16/23 mktag: use puts(str) instead of printf("%s\n", str)Ævar Arnfjörð Bjarmason, Jan 5, 2021
  153. 21/23 mktag: convert to parse-optionsÆvar Arnfjörð Bjarmason, Jan 5, 2021
  154. 19/23 mktag: allow turning off fsck.extraHeaderEntryÆvar Arnfjörð Bjarmason, Jan 5, 2021
  155. 23/23 mktag: add a --no-strict optionÆvar Arnfjörð Bjarmason, Jan 5, 2021
  156. Junio C HamanoJan 6, 2021
  157. 23/23 mktag: add a --[no-]strict optionÆvar Arnfjörð Bjarmason, Jan 6, 2021
  158. Junio C HamanoJan 6, 2021
  159. Ævar Arnfjörð BjarmasonJan 7, 2021
  160. 22/23 mktag: mark strings for translationÆvar Arnfjörð Bjarmason, Jan 5, 2021
  161. 20/23 mktag: allow omitting the header/body \n separatorÆvar Arnfjörð Bjarmason, Jan 5, 2021
  162. 17/23 mktag: use fsck instead of custom verify_tag()Ævar Arnfjörð Bjarmason, Jan 5, 2021
  163. 18/23 fsck: make fsck_config() re-usableÆvar Arnfjörð Bjarmason, Jan 5, 2021
  164. 02/20 mktag doc: grammar fix, when exists -> when it existsÆvar Arnfjörð Bjarmason, Dec 23, 2020
  165. 03/20 mktag doc: update to explain why to use thisÆvar Arnfjörð Bjarmason, Dec 23, 2020
  166. Junio C HamanoDec 23, 2020
  167. 05/20 mktag tests: remove needless SHA-1 hardcodingÆvar Arnfjörð Bjarmason, Dec 23, 2020
  168. 04/20 mktag tests: don't needlessly use a subshellÆvar Arnfjörð Bjarmason, Dec 23, 2020
  169. 16/20 mktag: allow turning off fsck.extraHeaderEntryÆvar Arnfjörð Bjarmason, Dec 23, 2020
  170. SZEDER GáborDec 23, 2020
  171. 14/20 mktag: use fsck instead of custom verify_tag()Ævar Arnfjörð Bjarmason, Dec 23, 2020
  172. Junio C HamanoDec 23, 2020
  173. 20/20 mktag: add a --no-strict optionÆvar Arnfjörð Bjarmason, Dec 23, 2020
  174. Junio C HamanoDec 23, 2020
  175. SZEDER GáborDec 23, 2020
  176. 18/20 mktag: convert to parse-optionsÆvar Arnfjörð Bjarmason, Dec 23, 2020
  177. 06/20 mktag tests: improve verify_object() test coverageÆvar Arnfjörð Bjarmason, Dec 23, 2020
  178. Junio C HamanoDec 23, 2020
  179. 11/20 mktag: use default strbuf_read() hintÆvar Arnfjörð Bjarmason, Dec 23, 2020
  180. 07/20 mktag tests: don't pipe to stderr needlesslyÆvar Arnfjörð Bjarmason, Dec 23, 2020
  181. Junio C HamanoDec 23, 2020
  182. 10/20 mktag tests: test "hash-object" compatibilityÆvar Arnfjörð Bjarmason, Dec 23, 2020
  183. Junio C HamanoDec 23, 2020
  184. 13/20 mktag: use puts(str) instead of printf("%s\n", str)Ævar Arnfjörð Bjarmason, Dec 23, 2020
  185. 17/20 mktag: allow omitting the header/body \n separatorÆvar Arnfjörð Bjarmason, Dec 23, 2020
  186. 12/20 mktag: remove redundant braces in one-line body "if"Ævar Arnfjörð Bjarmason, Dec 23, 2020
  187. 15/20 fsck: make fsck_config() re-usableÆvar Arnfjörð Bjarmason, Dec 23, 2020
  188. 09/20 mktag tests: stress test whitespace handlingÆvar Arnfjörð Bjarmason, Dec 23, 2020
  189. Junio C HamanoDec 23, 2020
  190. 08/20 mktag tests: don't create "mytag" twiceÆvar Arnfjörð Bjarmason, Dec 23, 2020
  191. Junio C HamanoDec 23, 2020
  192. 19/20 mktag: mark strings for translationÆvar Arnfjörð Bjarmason, Dec 23, 2020
  193. 04/10 mktag tests: don't needlessly use a subshellÆvar Arnfjörð Bjarmason, Dec 9, 2020
  194. 05/10 mktag tests: remove needless SHA-1 hardcodingÆvar Arnfjörð Bjarmason, Dec 9, 2020
  195. 05/10 mktag tests: don't needlessly use a subshellÆvar Arnfjörð Bjarmason, Nov 26, 2020
  196. 01/10 mktag doc: say <hash> not <sha1>Ævar Arnfjörð Bjarmason, Nov 26, 2020
  197. Junio C HamanoDec 1, 2020
  198. 07/10 mktag tests: improve verify_object() test coverageÆvar Arnfjörð Bjarmason, Nov 26, 2020
  199. 10/10 mktag doc: update to explain why to use thisÆvar Arnfjörð Bjarmason, Nov 26, 2020
  200. Junio C HamanoDec 1, 2020
  201. 06/10 mktag tests: remove needless SHA-1 hardcodingÆvar Arnfjörð Bjarmason, Nov 26, 2020
  202. Junio C HamanoDec 1, 2020
  203. 09/10 mktag: use fsck instead of custom verify_tag()Ævar Arnfjörð Bjarmason, Nov 26, 2020
  204. Junio C HamanoDec 1, 2020
  205. Junio C HamanoDec 1, 2020
  206. 08/10 fsck: add new "extra" checks for "mktag"Ævar Arnfjörð Bjarmason, Nov 26, 2020
  207. Junio C HamanoDec 1, 2020
  208. 02/12 mktag: reword write_object_file() errorÆvar Arnfjörð Bjarmason, Nov 26, 2020
  209. 03/12 mktag: remove redundant braces in one-line body "if"Ævar Arnfjörð Bjarmason, Nov 26, 2020
  210. 06/12 mktag tests: improve verify_object() test coverageÆvar Arnfjörð Bjarmason, Nov 26, 2020
  211. 04/12 mktag tests: don't needlessly use a subshellÆvar Arnfjörð Bjarmason, Nov 26, 2020
  212. 05/12 mktag tests: remove needless SHA-1 hardcodingÆvar Arnfjörð Bjarmason, Nov 26, 2020
  213. Jeff KingNov 26, 2020
  214. 08/12 mktag: use fsck instead of custom verify_tag()Ævar Arnfjörð Bjarmason, Nov 26, 2020
  215. Jeff KingNov 26, 2020
  216. Ævar Arnfjörð BjarmasonNov 26, 2020
  217. 07/12 fsck: add new "extra" checks for "mktag"Ævar Arnfjörð Bjarmason, Nov 26, 2020
  218. Jeff KingNov 26, 2020
  219. Ævar Arnfjörð BjarmasonNov 26, 2020
  220. 11/12 mktag docs: say <hash> not <sha1>Ævar Arnfjörð Bjarmason, Nov 26, 2020
  221. 09/12 mktag: remove now-unused verify_tag() codeÆvar Arnfjörð Bjarmason, Nov 26, 2020
  222. Jeff KingNov 26, 2020
  223. 12/12 mktag: bring back some of the verify_object() logicÆvar Arnfjörð Bjarmason, Nov 26, 2020
  224. Jeff KingNov 26, 2020
  225. 10/12 mktag doc: update to explain why to use thisÆvar Arnfjörð Bjarmason, Nov 26, 2020
  226. 11/14 t3903: abstract away SHA-1-specific constantsbrian m. carlson, Aug 26, 2019
  227. 12/14 t4000: make hash size independentbrian m. carlson, Aug 26, 2019
  228. 14/14 t4009: make hash size independentbrian m. carlson, Aug 26, 2019
  229. 13/14 t4002: make hash independentbrian m. carlson, Aug 26, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.