git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v7 3/3] config: add conditional include

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 1, 2017, 17:47 UTC
Message-ID
<xmqqo9xkhosj.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20170301112631.16497-4-pclouds@gmail.com>
Nguyễn Thái Ngọc Duy  <pclouds@gmail.com> writes:
Show 20 quoted lines
>  int git_config_include(const char *var, const char *value, void *data)
>  {
>  	struct config_include_data *inc = data;
> +	const char *cond, *key;
> +	int cond_len;
>  	int ret;
>  
>  	/*
> @@ -185,6 +271,12 @@ int git_config_include(const char *var, const char *value, void *data)
>  
>  	if (!strcmp(var, "include.path"))
>  		ret = handle_path_include(value, inc);
> +
> +	if (!parse_config_key(var, "includeif", &cond, &cond_len, &key) &&
> +	    (cond && include_condition_is_true(cond, cond_len)) &&
> +	    !strcmp(key, "path"))
> +		ret = handle_path_include(value, inc);
> +
>  	return ret;
>  }

So "includeif.path" (misspelled one without any condition) falls through to "return ret" and gives the value we got from inc->fn(). I am OK with that (i.e. "missing condition is false").

Or we can make it go to handle_path_include(), effectively making the "include.path" a short-hand for "includeIf.path". I am also OK with that (i.e. "missing condition is true").

Or we could even have "include.[<condition>.]path" without "includeIf"? I am not sure if it is a bad idea that paints ourselves in a corner, but somehow I find it tempting.

Previous: Ramsay JonesNext: Jeff King
Message 28 of 39 in “Conditional config include”
  1. 0/1 Conditional config includeNguyễn Thái Ngọc Duy, Feb 23, 2017
  2. 1/1 config: add conditional includeNguyễn Thái Ngọc Duy, Feb 23, 2017
  3. Junio C HamanoFeb 23, 2017
  4. Duy NguyenFeb 24, 2017
  5. Junio C HamanoFeb 24, 2017
  6. Jeff KingFeb 26, 2017
  7. Junio C HamanoFeb 27, 2017
  8. Stefan BellerMar 6, 2017
  9. Jeff KingMar 7, 2017
  10. Stefan BellerMar 7, 2017
  11. 0/1 Conditional config includeNguyễn Thái Ngọc Duy, Feb 24, 2017
  12. 1/1 config: add conditional includeNguyễn Thái Ngọc Duy, Feb 24, 2017
  13. Junio C HamanoFeb 24, 2017
  14. Ramsay JonesFeb 24, 2017
  15. Philip OakleyFeb 24, 2017
  16. Duy NguyenFeb 26, 2017
  17. Philip OakleyFeb 26, 2017
  18. 0/1 Conditional config includeNguyễn Thái Ngọc Duy, Feb 24, 2017
  19. Duy NguyenFeb 24, 2017
  20. 1/1 config: add conditional includeNguyễn Thái Ngọc Duy, Feb 24, 2017
  21. Jeff KingFeb 26, 2017
  22. 0/3 Conditional config includeNguyễn Thái Ngọc Duy, Mar 1, 2017
  23. 1/3 config.txt: clarify multiple key values in include.pathNguyễn Thái Ngọc Duy, Mar 1, 2017
  24. Junio C HamanoMar 1, 2017
  25. 2/3 config.txt: reflow the second include.path paragraphNguyễn Thái Ngọc Duy, Mar 1, 2017
  26. 3/3 config: add conditional includeNguyễn Thái Ngọc Duy, Mar 1, 2017
  27. Ramsay JonesMar 1, 2017
  28. Junio C HamanoMar 1, 2017
  29. Jeff KingMar 3, 2017
  30. Junio C HamanoMar 3, 2017
  31. Jeff KingMar 3, 2017
  32. Junio C HamanoMar 1, 2017
  33. Jeff KingMar 3, 2017
  34. Duy NguyenMar 3, 2017
  35. Junio C HamanoMar 3, 2017
  36. Junio C HamanoMar 3, 2017
  37. Junio C HamanoMar 3, 2017
  38. Jeff KingMar 3, 2017
  39. Junio C HamanoMar 3, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.