Re: [GSOC PATCH v5 3/3] environment: remove the global variable 'sparse_expect_files_outside_of_patterns'

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

 



Hi Ayush

On 02/07/2025 00:53, Ayush Chandekar wrote:
On Tue, Jul 1, 2025 at 6:48 PM Phillip Wood <phillip.wood123@xxxxxxxxx> wrote:
On 30/06/2025 20:27, Ayush Chandekar wrote:

   void clear_skip_worktree_from_present_files(struct index_state *istate)
   {
+     int sparse_expect_files_outside_of_patterns = 0;
+     repo_config_get_bool(istate->repo, "sparse.expectfilesoutsideofpatterns",
+             &sparse_expect_files_outside_of_patterns);

This changes the user facing behavior if
sparse.expectfilesoutsideofpatterns is not a valid boolean value.
Currently git will error out when it first starts because that config
value is parsed by git_default_config() which is called by almost all
git commands. This means that if someone sets an invalid value they get
timely feedback that the value is invalid and git dies before doing
anything. Now, if the value is invalid, git will only die if this
function is called and it is likely to die in the middle of a command.

Yes, I get your point. However, if we look at settings which are
shifted to `struct repo_settings`, the behaviour is to set a
fallback/default value in case of an invalid input, instead of
throwing an error. This is done inside the `prepare_repo_settings()`
function, which is often called in the middle of a process.

I'm a bit confused by this and I'm not quite sure what you're saying for a couple of reasons. Firstly this patch is not adding a new member to struct repo_settings, it is parsing the config directly and will die() in git_config_bool() if the config value is invalid. Secondly prepare_repo_settings() ends up calling git_config_bool() and so will also die if the config value is invalid rather than setting a default value. In the case of prepare_repo_settings() commands that do not want to die in the middle of an operation can call that function early on before they start doing any real work. Looking at the output of "git grep prepare_repo_settings()" many do exactly that. Here there is no option for a command to die() early on invalid config values if it wants to.

Thanks

Phillip





[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