Re: [PATCH 0/9] git archive: use gzip again by default, document output stabilty

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 05.02.23 um 22:30 schrieb Ævar Arnfjörð Bjarmason:
>
> On Sat, Feb 04 2023, René Scharfe wrote:
>
>> Am 02.02.23 um 17:25 schrieb Junio C Hamano:
>>> Ævar Arnfjörð Bjarmason  <avarab@xxxxxxxxx> writes:
>>>
>>>> As the disruption of changing the default isn't worth it, let's use
>>>> gzip(1) again by default, and only fall back on the new "git archive
>>>> gzip" if it isn't available.
>>>
>>> It perhaps is OK, and lets us answer "ugh, the compressed output of
>>> 'git archive' is unstable again" with "we didn't change anything,
>>> perhaps you changed your gzip(1)?" when they fix bugs or improve
>>> compression or whatever.  Of course that is not an overall win for
>>> the end users, but in the short term until gzip gets such a change,
>>> we would presumably get the "same" output as before.
>>
>> Restoring the old default is an understandable reflex.  In theory it
>> worsens consistency and stability of the output, but in practice using
>> whatever was found in $PATH did work before -- or at least it was not
>> our problem if it didn't.
>
> "In theory" because the user might be flip-flopping between different
> gzip(1) versions?

No flopping needed.  We can't control what's in $PATH.  There are
OS-specific replacements for GNU gzip in NetBSD/FreeBSD/macOS and
OpenBSD.  People could use pigz.  Or cat, for that matter.  Different
versions of different tools might produce different output.

There are alternative to the original libz as well, e.g. libz-ng.  We
don't control which one or which version is installed, either, but we
could do so if we wanted by importing one of them like we did with
LibXDiff.

> Even if it wasn't for that breakage, I think 4/9 and 6/9 here show the
> main problem you were trying to solve in making "git archive gzip" the
> default didn't need to be solved by changing the default. I.e. the aim
> was to have it work when "gzip(1)" wasn't available, which we can do by
> falling back only if we can't invoke it, rather than changing the
> long-standing default.

The aim was to no longer depend on gzip.  That goal was already met by
providing the internal implementation, without changing the default.
Git for Windows for example could use it in their config and drop gzip.

Calling gzip if available, warning if it isn't and using the internal
implementation adds yet more variance.  No longer allowing gzip to be a
shell alias might confuse someone.  The automatic fallback would only
benefit users that don't want to touch /etc/gitconfig, have nobody to
do it for them and don't care about warnings -- hopefully not a big
crowd.

I didn't intend the change of default to be that painful, but don't see
the point in going back now that we're through.  The new default is
better -- one less dependency to care about.  And if we need to go
back, however, then a know-good state makes more sense than a smart
fallback with some new twists.

René




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux