Subject: Re: What's cooking in git.git (Aug 2021, #02; Tue, 3)

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Wed, 04 Aug 2021 21:53:02 +0200

On Wed, Aug 04 2021, Junio C Hamano wrote:

> Ævar Arnfjörð Bjarmason <[email-masked]> writes:
>
>>> * ab/test-columns (2021-08-02) 3 commits
>>>  - test-lib.sh: use GIT_TEST_COLUMNS over COLUMNS
>>>  - test-lib-functions.sh: add a test_with_columns function
>>>  - test-lib-functions.sh: rename test_must_fail_acceptable()
>>
>> We're going to need this or another solution to the v2.33.0-rc0
>> regression in c49a177beca (test-lib.sh: set COLUMNS=80 for --verbose
>> repeatability, 2021-06-29) before the final v2.33.0.
>
> Just a question.  Is that true?  Wouldn't a system that needs these
> on top of c49a177beca already break the tests without c49a177beca?
>
> IOW, is c49a177beca truly a "regression", or is it merely "a half
> solution that solves for most but not all platforms"?

Yes, because with c49a177beca your tests only break if you use the
--verbose option, i.e. if your stderr is connected to a terminal. I.e.:

    ./t0500-progress-display.sh --verbose

So in practice it mostly affects git developers who run with --verbose,
but probably nobody doing a build in the wild.

With c49a177beca they break on e.g.:

    /bin/bash ./t0500-progress-display.sh

If your bash is recent enough, so "make test" if you're on a system with
a recent bash whose /bin/sh is /bin/bash.

This is because post-c49a177beca we don't "unset" COLUMNS anymore, which
bash takes as license to update it.

So we really do need that series in before the release to avoid that
common annoyance, a revert of c49a177beca is also possible, i.e. it
would still leave things broken under --verbose, but that breakage is
rare and existed before v2.33.

I think given the triviality of the fixes and that the cause is
well-understood it makes sense to go forward in this case.