As of v2.10.0-rc1-4-g321459439 ("cat-file: support --textconv/--filters in batch mode"), t8010-cat-file-filters.sh has been failing on Cygwin. Digging into this, the test looks to expose a timing window: it appears that if `git cat-file --textconv --batch` receives input on stdin too quickly, it fails to parse some of that input. Compare the following output, run from the t8010 trash directory after a failed test run, where adding a `sleep` between the two lines of input changes the output: $ { echo $sha1 hello.txt ; echo $sha1 hello; } | git -c diff.txt.textconv='tr A-Za-z N-ZA-Mn-za-m <' cat-file --textconv --batch ce013625030ba8dba906f756967f9e9ca394464a blob 6 uryyb $ { echo $sha1 hello.txt ; sleep 1; echo $sha1 hello; } | git -c diff.txt.textconv='tr A-Za-z N-ZA-Mn-za-m <' cat-file --textconv --batch ce013625030ba8dba906f756967f9e9ca394464a blob 6 uryyb ce013625030ba8dba906f756967f9e9ca394464a blob 6 hello Similarly, I can get t8010 to pass with the following patch: diff --git a/t/t8010-cat-file-filters.sh b/t/t8010-cat-file-filters.sh index d8242e467..3aa1385ad 100755 --- a/t/t8010-cat-file-filters.sh +++ b/t/t8010-cat-file-filters.sh @@ -54,7 +54,7 @@ test_expect_success 'cat-file --textconv --batch works' ' sha1=$(git rev-parse -q --verify HEAD:world.txt) && test_config diff.txt.textconv "tr A-Za-z N-ZA-Mn-za-m <" && - printf "%s hello.txt\n%s hello\n" $sha1 $sha1 | + { printf "%s hello.txt\n" $sha1 && sleep 1 && printf "%s hello\n" $sha1; } | git cat-file --textconv --batch >actual && printf "%s blob 6\nuryyb\r\n\n%s blob 6\nhello\n\n" \ $sha1 $sha1 >expect && I don't think blindly applying the patch is the solution here, however. The correct solution is presumably to work out what is causing cat-file to discard some of its input and to get it to stop doing that. (For reference, to get the output above the test was run on the current master branch, specifically v2.14.1-326-g3dc57ebfb, while the local installed Git version was v2.14.0, although this behaviour seems to be consistent since the originating commit.)