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

Re: [PATCH v4] config: add conditional include

From
Duy Nguyen <pclouds@gmail.com>
Date
Aug 22, 2016, 13:09 UTC
Message-ID
<CACsJy8BNP8GDRxDGTQwcYWTovN9o11TCkUJ28=5zav3QnGv9nQ@mail.gmail.com>
In-Reply-To
<vpqr39harit.fsf@anie.imag.fr>

On Mon, Aug 22, 2016 at 7:59 PM, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote:

Show 31 quoted lines
> Duy Nguyen <pclouds@gmail.com> writes:
>
>> On Sun, Aug 21, 2016 at 4:08 AM, Jakub Narębski <jnareb@gmail.com> wrote:
>>> W dniu 19.08.2016 o 15:54, Jeff King pisze:
>>>> On Sat, Aug 13, 2016 at 03:40:59PM +0700, Duy Nguyen wrote:
>>>>
>>>>> Ping..
>>>>
>>>> There was some discussion after v4. I think the open issues are:
>>>>
>>>>   - the commit message is rather terse (it should describe motivation,
>>>>     and can refer to the docs for the "how")
>>>>
>>>>   - the syntax might be more clear as:
>>>>
>>>>        [include-if "gitdir:..."]
>>>>
>>>>     or
>>>>
>>>>        [include "gitdir-is:..."]
>>>
>>> Or
>>>
>>>          [include "if-gitdir:..."]
>>
>> I like this one. I can re-roll to address the first two bullet point,
>> if the last one, the open question, will not become a blocker later
>> on.
>
> I think the syntax should be design to allow arbitrary boolean
> expression later if needed.

I would be against that. We may extend it more in future, but it should be under control, not full boolean expressions.

Show 17 quoted lines
> Then, I prefer one of
>
>   [include-if "gitdir-is:..."]
>   [include    "gitdir-is:..."]
>
> because it may later be extended to e.g.
>
>   [include-if "not(gitdir-is:...)"]
>   [include-if "gitdir-matches:regex"]
>   [include-if "gitdir-is:... and git-version-greater:2.9"]
>   ...
>
> I actually already use "conditional include on version number" because I
> use push.default=upstream which makes older versions of Git crash, but
> fortunately these versions of Git also ignore the "include" directive so
> having this push.default=upstream in an included file works. It's a
> hack, it worked once but it won't work again.

We probably have a way to stop old git from reading new git's features, including ones in config files: the config group extensions.*. Assuming that "[include "blah"]" is new stuff, git can be taught to accept that only when extensions.blah is present (which old git would bail). It discourages adding too many fancy features (because extensions.* in your config file would be a mess), which is IMO a good point.

-- 
Duy
Previous: Matthieu MoyNext: Matthieu Moy
Message 34 of 46 in “config: add conditional include”
  1. config: add conditional includeNguyễn Thái Ngọc Duy, Jun 26, 2016
  2. Jeff KingJun 26, 2016
  3. Duy NguyenJun 27, 2016
  4. Jeff KingJun 27, 2016
  5. Duy NguyenJun 27, 2016
  6. Jeff KingJun 27, 2016
  7. 0/2 Config conditional includeNguyễn Thái Ngọc Duy, Jun 28, 2016
  8. 2/2 config: add conditional includeNguyễn Thái Ngọc Duy, Jun 28, 2016
  9. Jeff KingJun 28, 2016
  10. Duy NguyenJun 29, 2016
  11. Eric SunshineJun 28, 2016
  12. config: add conditional includeNguyễn Thái Ngọc Duy, Jul 12, 2016
  13. Matthieu MoyJul 13, 2016
  14. Jeff KingJul 13, 2016
  15. Matthieu MoyJul 13, 2016
  16. Duy NguyenJul 13, 2016
  17. config: add conditional includeNguyễn Thái Ngọc Duy, Jul 14, 2016
  18. Johannes SchindelinJul 14, 2016
  19. Duy NguyenJul 14, 2016
  20. Johannes SchindelinJul 16, 2016
  21. Duy NguyenJul 16, 2016
  22. Jeff KingJul 16, 2016
  23. Johannes SchindelinJul 16, 2016
  24. Jeff KingJul 16, 2016
  25. Johannes SchindelinJul 17, 2016
  26. Jeff KingJul 20, 2016
  27. Junio C HamanoJul 20, 2016
  28. Jakub NarębskiJul 20, 2016
  29. Duy NguyenAug 13, 2016
  30. Jeff KingAug 19, 2016
  31. Jakub NarębskiAug 20, 2016
  32. Duy NguyenAug 22, 2016
  33. Matthieu MoyAug 22, 2016
  34. Duy NguyenAug 22, 2016
  35. Matthieu MoyAug 22, 2016
  36. Duy NguyenAug 22, 2016
  37. Johannes SchindelinAug 23, 2016
  38. Duy NguyenAug 24, 2016
  39. Jakub NarębskiAug 24, 2016
  40. Jeff KingAug 24, 2016
  41. 1/2 add skip_prefix_mem helperNguyễn Thái Ngọc Duy, Jun 28, 2016
  42. Jeff KingJun 28, 2016
  43. Matthieu MoyJun 28, 2016
  44. Jeff KingJun 28, 2016
  45. Duy NguyenJun 29, 2016
  46. Junio C HamanoJun 28, 2016

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.