From dae6c322fa106d72dabd7551f388715e6a9f2ebf Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 27 Jan 2016 07:58:06 +0100 Subject: [PATCH] test-dump-untracked-cache: don't modify the untracked cache To correctly perform its testing function, test-dump-untracked-cache should not change the state of the untracked cache in the index. As a previous patch makes read_index_from() change the state of the untracked cache and as test-dump-untracked-cache indirectly calls this function, we need a mechanism to prevent read_index_from() from changing the untracked cache state when it's called from test-dump-untracked-cache. Signed-off-by: Christian Couder Signed-off-by: Junio C Hamano --- cache.h | 7 +++++++ config.c | 4 ++++ environment.c | 7 +++++++ test-dump-untracked-cache.c | 4 ++++ 4 files changed, 22 insertions(+) diff --git a/cache.h b/cache.h index a7f084a539ead0..255b273d82a8ec 100644 --- a/cache.h +++ b/cache.h @@ -1604,6 +1604,13 @@ 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); +/* + * This is a hack for test programs like test-dump-untracked-cache to + * ensure that they do not modify the untracked cache when reading it. + * Do not use it otherwise! + */ +extern int ignore_untracked_cache_config; + struct key_value_info { const char *filename; int linenr; diff --git a/config.c b/config.c index 647a15ef7258df..b95ac3a9cd5ca4 100644 --- a/config.c +++ b/config.c @@ -1599,6 +1599,10 @@ int git_config_get_untracked_cache(void) int val = -1; const char *v; + /* Hack for test programs like test-dump-untracked-cache */ + 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 2da7fe2e06ff38..b329024f134a9c 100644 --- a/environment.c +++ b/environment.c @@ -87,6 +87,13 @@ int auto_comment_line_char; /* Parallel index stat data preload? */ int core_preload_index = 1; +/* + * This is a hack for test programs like test-dump-untracked-cache to + * ensure that they do not modify the untracked cache when reading it. + * Do not use it otherwise! + */ +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 25d855d98b5cc7..0a1c28524668f0 100644 --- a/test-dump-untracked-cache.c +++ b/test-dump-untracked-cache.c @@ -44,6 +44,10 @@ int main(int ac, char **av) { struct untracked_cache *uc; struct strbuf base = STRBUF_INIT; + + /* Hack to avoid modifying the untracked cache when we read it */ + ignore_untracked_cache_config = 1; + setup_git_directory(); if (read_cache() < 0) die("unable to read index file");