Re: [PATCH v3 8/8] clean/smudge: allow clean filters to process extremely large files
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 29, 2021, 23:17 UTC
- Message-ID
- <xmqq4k8zh14r.fsf@gitster.g>
- In-Reply-To
- <acc5591517fa519fc45c07c27defb309c891dea0.1635515959.git.gitgitgadget@gmail.com>
"Matt Cooper via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 10 quoted lines
> +# This clean filter writes down the size of input it receives. By checking against > +# the actual size, we ensure that cleaning doesn't mangle large files on 64-bit Windows. > +test_expect_success EXPENSIVE,SIZE_T_IS_64BIT,!LONG_IS_64BIT \ > + 'files over 4GB convert on input' ' > + test-tool genzeros $((5*1024*1024*1024)) >big && > + test_config filter.checklarge.clean "wc -c >big.size" && > + echo "big filter=checklarge" >.gitattributes && > + git add big && > + test $(test_file_size big) -eq $(cat big.size) > +'
I would have expected that the clean filter to be sending the count to its standard output (to be hashed and made into a blob object), and the test wuld be doing "git cat-file blob :big" to read the contents of the raw blob, bypassing the filter system. But we are testing with only a single path anyway, use of this single extra file is OK.
Looking good.