Subject: Re: [RFC/PATCH 6/8] config: add core.untrackedCache

From: Torsten Bögershausen <[email-masked]>
Date: Wed, 02 Dec 2015 08:12:57 +0100

On 12/01/2015 09:31 PM, Christian Couder wrote:
> When we know that mtime is fully supported by the environment, we
> might want the untracked cache to be always used by default without
> any mtime test or kernel version check being performed.
I'm not sure if ever "we know" ?
How can we know without testing ?
I personaly can not say "I know" in all the different system I am using,
so I always want to test and verify that the untracked cache is working,
before I rely on it.

> Also when we know that mtime is not supported by the environment,
> for example because the repo is shared over a network file system,
> then we might want 'git update-index --untracked-cache' to fail
> immediately instead of it testing if it works (because it might
> work on some systems using the repo over the network file system
> but not others).
Same here.
> Signed-off-by: Christian Couder <[email-masked]>
> ---
>   Documentation/config.txt               | 10 ++++++++++
>   Documentation/git-update-index.txt     | 11 +++++++++--
>   builtin/update-index.c                 | 28 ++++++++++++++++++----------
>   cache.h                                |  1 +
>   config.c                               | 10 ++++++++++
>   contrib/completion/git-completion.bash |  1 +
>   dir.c                                  |  2 +-
>   environment.c                          |  1 +
>   wt-status.c                            |  9 +++++++++
>   9 files changed, 60 insertions(+), 13 deletions(-)
>
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index b4b0194..bf176ff 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -308,6 +308,16 @@ core.trustctime::
>   	crawlers and some backup systems).
>   	See linkgit:git-update-index[1]. True by default.
>   
> +core.untrackedCache::
> +	If unset or set to 'default' or 'check', untracked cache will
> +	not be enabled by default and when
> +	'update-index --untracked-cache' is called, Git will test if
> +	mtime is working properly before enabling it. If set to false,
> +	Git will refuse to enable untracked cache even if
> +	'--force-untracked-cache' is used. If set to true, Git will
> +	blindly enabled untracked cache by default without testing if
> +	it works. See linkgit:git-update-index[1].
> +
Please no.
The command line option should always be able to overwrite any settings
from a config file.

Sorry, I may missing the big picture here.
What exactly should be achieved ?

A config variable that should ask Git to always try to use the untracked 
cache ?
Or a config variable that tells Git to never use the untracked cache ?
Or a combination ?

core.untrackedCache::
  false: Never use the untracked cache ?
  true: Always try to use the untracked cache ?
        Try means: probe, and if the probing fails, record that if fails in the index,
        for this hostname/os/kernel/path (Don't remember all the details)
unset: As today,