]> git.ipfire.org Git - thirdparty/git.git/commit
reset: remove 'reset.refresh' config option
authorVictoria Dye <vdye@github.com>
Wed, 23 Mar 2022 18:18:00 +0000 (18:18 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 23 Mar 2022 21:39:45 +0000 (14:39 -0700)
commit7cff6765fe5c1ce97f4afba9432c8aa5c5f877ba
tree236883a21a6b1293b197cfc72b485ce23a18d19a
parent2efc9b84e5e9ea063ecfb2f813cb56653a03c10a
reset: remove 'reset.refresh' config option

Remove the 'reset.refresh' option, requiring that users explicitly specify
'--no-refresh' if they want to skip refreshing the index.

The 'reset.refresh' option was introduced in 101cee42dd (reset: introduce
--[no-]refresh option to --mixed, 2022-03-11) as a replacement for the
refresh-skipping behavior originally controlled by 'reset.quiet'.

Although 'reset.refresh=false' functionally served the same purpose as
'reset.quiet=true', it exposed [1] the fact that the existence of a global
"skip refresh" option could potentially cause problems for users. Allowing a
global config option to avoid refreshing the index forces scripts using 'git
reset --mixed' to defensively use '--refresh' if index refresh is expected;
if that option is missing, behavior of a script could vary from user-to-user
without explanation.

Furthermore, globally disabling index refresh in 'reset --mixed' was
initially devised as a passive performance improvement; since the
introduction of the option, other changes have been made to Git (e.g., the
sparse index) with a greater potential performance impact without
sacrificing index correctness. Therefore, we can more aggressively err on
the side of correctness and limit the cases of skipping index refresh to
only when a user specifies the '--no-refresh' option.

[1] https://lore.kernel.org/git/xmqqy2179o3c.fsf@gitster.g/

Signed-off-by: Victoria Dye <vdye@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-reset.txt
builtin/reset.c
t/t7102-reset.sh