Re: RFC: A configuration design for future-proofing fsync() configuration
From: Junio C Hamano <hidden>
Date: 2021-11-11 18:03:16
Ævar Arnfjörð Bjarmason [off-list ref] writes:
Continuing a discussion from [1] currently we have:
; Defaults to 'false'
core.fsyncObjectFiles = [true|false]
In master..next this has been extended to this by Neeraj:
core.fsyncObjectFiles = [true|false|batch]
Which, as an aside I hadn't considered before and I think we need to
change before it lands on "master", we really don't want config users
want to enable that makes older versions hard die. It's annoying to want
to configure a new thing and not being able to put it in .gitconfig
because older versions die on it:
$ git -c core.fsyncObjectFiles=batch status; echo $?
fatal: bad boolean config value 'batch' for 'core.fsyncobjectfiles'
128But then it is also annoying to find out that the shiny new toy you thought you configured silently is not kicking in. I actually think Neeraj's "if you are in a mixed environment, you need to be aware of which copies of Git you use are prepared to use it" would be better for end users. For us Git developers, it would be less convenient, though.