Re: [PATCH v2 3/3] config: correct file reading order in read_early_config()
- From
Jeff King <peff@peff.net>
- Date
- Apr 18, 2017, 03:53 UTC
- Message-ID
- <20170418035344.feu27cwogvdbdwyj@sigill.intra.peff.net>
- In-Reply-To
- <20170417101002.18272-3-pclouds@gmail.com>
On Mon, Apr 17, 2017 at 05:10:02PM +0700, Nguyễn Thái Ngọc Duy wrote:
Show 12 quoted lines
> diff --git a/t/helper/test-config.c b/t/helper/test-config.c
> index 8e3ed6a76c..696d0a52fd 100644
> --- a/t/helper/test-config.c
> +++ b/t/helper/test-config.c
> @@ -84,6 +84,10 @@ int cmd_main(int argc, const char **argv)
> struct config_set cs;
>
> if (argc == 3 && !strcmp(argv[1], "read_early_config")) {
> + const char *cmdline_config = getenv("CMDL_CFG");
> +
> + if (cmdline_config)
> + git_config_push_parameter(cmdline_config);I think you can do without this hunk by just setting:
GIT_CONFIG_PARAMETERS="'foo.bar=from-cmdline'"
(note the single-quotes which must be there). See how t1308 does it.
Show 16 quoted lines
> +test_expect_success 'read config file in right order' ' > + echo "[test]source = home" >>.gitconfig && > + git init foo && > + ( > + cd foo && > + echo "[test]source = repo" >>.git/config && > + CMDL_CFG=test.source=cmdline test-config \ > + read_early_config test.source >actual && > + cat >expected <<-\EOF && > + home > + repo > + cmdline > + EOF > + test_cmp expected actual > + ) > +'
This looks good (modulo the CMDL_CFG above).
If we wanted to trigger it in a real-world test, we'd have to use pager config (since it's the only thing that uses early-config; alias lookup probably should do, but that's for another time). But I think this synthetic test is fine; it makes the output easy to verify.
-Peff