From: "Victoria Dye via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: gitster@pobox.com, phillip.wood123@gmail.com,
Victoria Dye <vdye@github.com>, Victoria Dye <vdye@github.com>
Subject: [PATCH v2 3/3] reset: remove 'reset.refresh' config option
Date: Wed, 23 Mar 2022 18:18:00 +0000 [thread overview]
Message-ID: <597aa82851c77b79bd296f9c3c9bab8907fe0e95.1648059480.git.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1184.v2.git.1648059480.gitgitgadget@gmail.com>
From: Victoria Dye <vdye@github.com>
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>
---
Documentation/git-reset.txt | 4 +---
builtin/reset.c | 4 +---
t/t7102-reset.sh | 14 ++------------
3 files changed, 4 insertions(+), 18 deletions(-)
diff --git a/Documentation/git-reset.txt b/Documentation/git-reset.txt
index f4aca9dd35c..01cb4c9b9c5 100644
--- a/Documentation/git-reset.txt
+++ b/Documentation/git-reset.txt
@@ -109,9 +109,7 @@ OPTIONS
--refresh::
--no-refresh::
- Proactively refresh the index after a mixed reset. If unspecified, the
- behavior falls back on the `reset.refresh` config option. If neither
- `--[no-]refresh` nor `reset.refresh` are set, refresh is enabled.
+ Refresh the index after a mixed reset. Enabled by default.
--pathspec-from-file=<file>::
Pathspec is passed in `<file>` instead of commandline args. If
diff --git a/builtin/reset.c b/builtin/reset.c
index 9ce55afd1be..1d89faef5ec 100644
--- a/builtin/reset.c
+++ b/builtin/reset.c
@@ -423,7 +423,6 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
};
git_config(git_reset_config, NULL);
- git_config_get_bool("reset.refresh", &refresh);
argc = parse_options(argc, argv, prefix, options, git_reset_usage,
PARSE_OPT_KEEP_DASHDASH);
@@ -529,8 +528,7 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
t_delta_in_ms = (getnanotime() - t_begin) / 1000000;
if (!quiet && advice_enabled(ADVICE_RESET_NO_REFRESH_WARNING) && t_delta_in_ms > REFRESH_INDEX_DELAY_WARNING_IN_MS) {
advise(_("It took %.2f seconds to refresh the index after reset. You can use\n"
- "'--no-refresh' to avoid this. Set the config setting reset.refresh to false\n"
- "to make this the default."), t_delta_in_ms / 1000.0);
+ "'--no-refresh' to avoid this."), t_delta_in_ms / 1000.0);
}
}
} else {
diff --git a/t/t7102-reset.sh b/t/t7102-reset.sh
index 9e4c4deee35..22477f3a312 100755
--- a/t/t7102-reset.sh
+++ b/t/t7102-reset.sh
@@ -493,19 +493,9 @@ test_expect_success '--mixed refreshes the index' '
'
test_expect_success '--mixed --[no-]refresh sets refresh behavior' '
- # Verify that --[no-]refresh and `reset.refresh` control index refresh
-
- # Config setting
- test_reset_refreshes_index "-c reset.refresh=true" &&
- ! test_reset_refreshes_index "-c reset.refresh=false" &&
-
- # Command line option
+ # Verify that --[no-]refresh controls index refresh
test_reset_refreshes_index "" --refresh &&
- ! test_reset_refreshes_index "" --no-refresh &&
-
- # Command line option overrides config setting
- test_reset_refreshes_index "-c reset.refresh=false" --refresh &&
- ! test_reset_refreshes_index "-c reset.refresh=true" --no-refresh
+ ! test_reset_refreshes_index "" --no-refresh
'
test_expect_success '--mixed preserves skip-worktree' '
--
gitgitgadget
next prev parent reply other threads:[~2022-03-23 18:18 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-21 20:34 [PATCH 0/4] reset: make --no-refresh the only way to skip index refresh Victoria Dye via GitGitGadget
2022-03-21 20:34 ` [PATCH 1/4] reset: do not make '--quiet' disable " Victoria Dye via GitGitGadget
2022-03-23 15:59 ` Phillip Wood
2022-03-23 16:52 ` Victoria Dye
2022-03-21 20:34 ` [PATCH 2/4] reset: deprecate 'reset.quiet' config option Victoria Dye via GitGitGadget
2022-03-23 16:00 ` Phillip Wood
2022-03-21 20:34 ` [PATCH 3/4] reset: deprecate 'reset.refresh' " Victoria Dye via GitGitGadget
2022-03-23 16:02 ` Phillip Wood
2022-03-23 17:19 ` Victoria Dye
2022-03-21 20:34 ` [PATCH 4/4] reset: deprecate '--refresh', leaving only '--no-refresh' Victoria Dye via GitGitGadget
2022-03-23 16:02 ` Phillip Wood
2022-03-23 16:58 ` Victoria Dye
2022-03-23 18:17 ` [PATCH v2 0/3] reset: make --no-refresh the only way to skip index refresh Victoria Dye via GitGitGadget
2022-03-23 18:17 ` [PATCH v2 1/3] reset: do not make '--quiet' disable " Victoria Dye via GitGitGadget
2022-03-23 18:17 ` [PATCH v2 2/3] reset: remove 'reset.quiet' config option Victoria Dye via GitGitGadget
2022-03-23 18:18 ` Victoria Dye via GitGitGadget [this message]
2022-03-23 19:26 ` [PATCH v2 0/3] reset: make --no-refresh the only way to skip index refresh Derrick Stolee
2022-03-23 21:41 ` Junio C Hamano
2022-03-24 11:11 ` Phillip Wood
2022-03-24 17:13 ` Junio C Hamano
2022-03-24 17:33 ` Junio C Hamano
2022-03-24 18:01 ` Victoria Dye
2022-03-24 20:36 ` Junio C Hamano
2022-03-25 15:04 ` Derrick Stolee
2022-03-25 16:35 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=597aa82851c77b79bd296f9c3c9bab8907fe0e95.1648059480.git.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=phillip.wood123@gmail.com \
--cc=vdye@github.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).