Subject: Re: [PATCH v9r2 1/2] add `config_set` API for caching config-like files

From: Matthieu Moy <[email-masked]>
Date: Thu, 17 Jul 2014 13:13:51 +0200

Matthieu Moy <[email-masked]> writes:

> Tanay Abhra <[email-masked]> writes:
>
>> I have a question about renaming git_config() to git_config_raw().
>> I was working on a patch and I am getting stuck here.
>> It fails in t1001, t1020 & t4018. The reason for the last test failure
>> is unknown right now. For the first two, it boils down to this,
>>
>> 		git init --bare bare-ancestor-aliased.git &&
>> 		cd bare-ancestor-aliased.git &&
>> 		echo "[alias] aliasedinit = init" >>config &&
>> 		mkdir plain-nested &&
>> 		cd plain-nested &&
>> 		git aliasedinit
>
> Git tries to read .git/config relative to the current directory, and
> tries to resolve aliases from it. The problem is: if one tries to do
> this from a subdirectory inside the repo, .git/config is not the right
> path, and the alias lookup fails.
>
> I'll investigate more later.

This fixes the first two tests (it should be squashed into your PATCH 1
regardless of the rename git_config -> git_config_raw):

commit 42315d10e21a1273b73671a3f8c9f7640c4feb44 (HEAD, config-v9)
Author: Matthieu Moy <[email-masked]>
Date:   Thu Jul 17 13:12:21 2014 +0200

    clear the config cache in setup_git_dir

diff --git a/setup.c b/setup.c
index 0a22f8b..c0d31f5 100644
--- a/setup.c
+++ b/setup.c
@@ -625,6 +625,15 @@ static const char *setup_git_directory_gently_1(int *nongit_ok)
        int one_filesystem = 1;
 
        /*
+        * We may have read an incomplete configuration before
+        * setting-up the git directory. If so, clear the cache so
+        * that the next queries to the configuration reload complete
+        * configuration (including the per-repo config file that we
+        * ignored previously).
+        */
+       git_config_clear();
+
+       /*
         * Let's assume that we are in a git repository.
         * If it turns out later that we are somewhere else, the value will be
         * updated accordingly.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/