From: Junio C Hamano <gitster@pobox.com>
To: Christian Couder <christian.couder@gmail.com>
Cc: git@vger.kernel.org, "Jeff King" <peff@peff.net>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Nguyen Thai Ngoc Duy" <pclouds@gmail.com>,
"David Turner" <dturner@twopensource.com>,
"Eric Sunshine" <sunshine@sunshineco.com>,
"Torsten Bögershausen" <tboegi@web.de>,
"Christian Couder" <chriscool@tuxfamily.org>
Subject: Re: [PATCH v5 10/11] test-dump-untracked-cache: don't modify the untracked cache
Date: Fri, 15 Jan 2016 12:16:37 -0800 [thread overview]
Message-ID: <xmqqa8o6ha3e.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: 1452841192-620-11-git-send-email-chriscool@tuxfamily.org
Christian Couder <christian.couder@gmail.com> writes:
> diff --git a/cache.h b/cache.h
> index 59a15fd..89c7e10 100644
> --- a/cache.h
> +++ b/cache.h
> @@ -1605,6 +1605,8 @@ extern int git_config_get_maybe_bool(const char *key, int *dest);
> extern int git_config_get_pathname(const char *key, const char **dest);
> extern int git_config_get_untracked_cache(void);
>
> +extern int ignore_untracked_cache_config;
> +
I know you said this is a hack to support the test, but I really do
not like to have a test-only global variable exposed to everybody
like this, as I do not think "ignore_untracked_cache_config" should
be necessary outside the context of testing [*1*].
If the config cache layer that is used by the implementation of
git_config_get_untracked_cache() had a way to be told to pretend
that the value of a particular configuration variable is a given
value, then we could do
git_config_pretend_value("core.untrackedcache", "keep");
at the beginning of the test program without harming anybody else.
The above is just me "thinking aloud", without assessing if the
damage to the entire codebase with that approach to extend the
config layer would be larger than the damabe by this patch, and it
is certainly not a suggestion to redo this patch along that line.
But I am saying it aloud because it may turn out to be a good
direction to go in the larger picture once this series is done--it
may be a solution that is applicable to a class of similar problems
in a more general way.
Inside the scope of this series, can we at least add a comment next
to this variable telling everybody to never use it in normal
programs, or something?
Thanks.
[Footnote]
*1* Otherwise, we have a larger problem; it would mean that "we
trust the configuration variable better than the fact that the user
said the feature must (or must not) be used with this index file" is
flawed, which would contradict with the whole premise of this
series.
> diff --git a/config.c b/config.c
> index 647a15e..a4f70f7 100644
> --- a/config.c
> +++ b/config.c
> @@ -1599,6 +1599,9 @@ int git_config_get_untracked_cache(void)
> int val = -1;
> const char *v;
>
> + if (ignore_untracked_cache_config)
> + return -1;
> +
> if (!git_config_get_maybe_bool("core.untrackedcache", &val))
> return val;
>
> diff --git a/environment.c b/environment.c
> index 1cc4aab..74294ee 100644
> --- a/environment.c
> +++ b/environment.c
> @@ -87,6 +87,12 @@ int auto_comment_line_char;
> /* Parallel index stat data preload? */
> int core_preload_index = 1;
>
> +/*
> + * This is to ensure that the untracked cache is not modified, for
> + * example in test programs like test-dump-untracked-cache.
> + */
> +int ignore_untracked_cache_config;
> +
> /* This is set by setup_git_dir_gently() and/or git_default_config() */
> char *git_work_tree_cfg;
> static char *work_tree;
> diff --git a/test-dump-untracked-cache.c b/test-dump-untracked-cache.c
> index 25d855d..8d1293c 100644
> --- a/test-dump-untracked-cache.c
> +++ b/test-dump-untracked-cache.c
> @@ -44,6 +44,8 @@ int main(int ac, char **av)
> {
> struct untracked_cache *uc;
> struct strbuf base = STRBUF_INIT;
> +
> + ignore_untracked_cache_config = 1;
> setup_git_directory();
> if (read_cache() < 0)
> die("unable to read index file");
next prev parent reply other threads:[~2016-01-15 20:16 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-15 6:59 [PATCH v5 00/11] Untracked cache improvements Christian Couder
2016-01-15 6:59 ` [PATCH v5 01/11] dir: free untracked cache when removing it Christian Couder
2016-01-15 6:59 ` [PATCH v5 02/11] update-index: use enum for untracked cache options Christian Couder
2016-01-15 6:59 ` [PATCH v5 03/11] update-index: add --test-untracked-cache Christian Couder
2016-01-15 6:59 ` [PATCH v5 04/11] update-index: add untracked cache notifications Christian Couder
2016-01-15 6:59 ` [PATCH v5 05/11] update-index: move 'uc' var declaration Christian Couder
2016-01-15 6:59 ` [PATCH v5 06/11] dir: add {new,add}_untracked_cache() Christian Couder
2016-01-15 6:59 ` [PATCH v5 07/11] dir: add remove_untracked_cache() Christian Couder
2016-01-15 6:59 ` [PATCH v5 08/11] dir: simplify untracked cache "ident" field Christian Couder
2016-01-16 14:55 ` Torsten Bögershausen
2016-01-15 6:59 ` [PATCH v5 09/11] config: add core.untrackedCache Christian Couder
2016-01-15 20:15 ` Junio C Hamano
2016-01-15 6:59 ` [PATCH v5 10/11] test-dump-untracked-cache: don't modify the untracked cache Christian Couder
2016-01-15 20:16 ` Junio C Hamano [this message]
2016-01-20 10:12 ` Christian Couder
2016-01-15 6:59 ` [PATCH v5 11/11] t7063: add tests for core.untrackedCache Christian Couder
2016-01-15 20:16 ` [PATCH v5 00/11] Untracked cache improvements Junio C Hamano
2016-01-16 14:57 ` Torsten Bögershausen
2016-01-19 14:43 ` Christian Couder
2016-01-19 17:47 ` 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqa8o6ha3e.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox.com \
--cc=avarab@gmail.com \
--cc=chriscool@tuxfamily.org \
--cc=christian.couder@gmail.com \
--cc=dturner@twopensource.com \
--cc=git@vger.kernel.org \
--cc=pclouds@gmail.com \
--cc=peff@peff.net \
--cc=sunshine@sunshineco.com \
--cc=tboegi@web.de \
/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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.