git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Victoria Dye <vdye@github.com>
To: phillip.wood@dunelm.org.uk,
	Victoria Dye via GitGitGadget <gitgitgadget@gmail.com>,
	git@vger.kernel.org
Cc: gitster@pobox.com
Subject: Re: [PATCH 3/4] reset: deprecate 'reset.refresh' config option
Date: Wed, 23 Mar 2022 10:19:45 -0700	[thread overview]
Message-ID: <1d78ed3f-9644-e1c2-b95b-e1ae97df2c43@github.com> (raw)
In-Reply-To: <4f3cbfd5-65df-f44f-4867-45b1ab69c400@gmail.com>

Phillip Wood wrote:
> Hi Victoria
> 
> On 21/03/2022 20:34, Victoria Dye via GitGitGadget wrote:
>> From: Victoria Dye <vdye@github.com>
> 
> Same concern about the title as the last patch
> 

Agreed, I'll change it to "remove" in this and the previous patch.

>> 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.
> 
> Thanks for the well explained commit message
>> [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..df167eaa766 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.
>> +    Proactively refresh the index after a mixed reset. Enabled by default.
> 
> "Proactively" seems a but superfluous if I'm being picky. There was no entry in the config man page for reset.refresh so we don't need to do anything there. The code changes below look good
> 

Will update, thanks!

> Best Wishes
> 
> Phillip
> 
> 
>>   --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 e824aad3604..54324217f93 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' '
> 


  reply	other threads:[~2022-03-23 17:19 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 [this message]
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   ` [PATCH v2 3/3] reset: remove 'reset.refresh' " Victoria Dye via GitGitGadget
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=1d78ed3f-9644-e1c2-b95b-e1ae97df2c43@github.com \
    --to=vdye@github.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=gitster@pobox.com \
    --cc=phillip.wood@dunelm.org.uk \
    /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).