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

[PATCH 1/4] docs/config: clarify include/includeIf relationship

From
Jeff King <peff@peff.net>
Date
May 11, 2017, 09:10 UTC
Message-ID
<20170511091047.2dw52pnriulhjky3@sigill.intra.peff.net>
In-Reply-To
<20170511090905.tvkb4bk2ddjzjip4@sigill.intra.peff.net>

The "includeIf" directives behave exactly like include ones, except they only kick in when the conditional is true. That was mentioned in the "conditional" section, but let's make it more clear for the whole "includes" section, since people don't necessarily read the documentation top to bottom.

Signed-off-by: Jeff King <peff@peff.net>
---
 Documentation/config.txt | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 475e874d5..d5a453ed3 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -79,14 +79,20 @@ escape sequences) are invalid.
 Includes
 ~~~~~~~~
 
+The `include` and `includeIf` sections allow you include config
+directives from another source. These sections behave identically to
+each other with the exception that `includeIf` sections may be ignored
+if their condition does not evaluate to true; see "Conditional includes"
+below.
+
 You can include a config file from another by setting the special
-`include.path` variable to the name of the file to be included. The
-variable takes a pathname as its value, and is subject to tilde
-expansion. `include.path` can be given multiple times.
+`include.path` (or `includeIf.*.path`) variable to the name of the file
+to be included. The variable takes a pathname as its value, and is
+subject to tilde expansion. These variables can be given multiple times.
 
 The included file is expanded immediately, as if its contents had been
 found at the location of the include directive. If the value of the
-`include.path` variable is a relative path, the path is considered to
+variable is a relative path, the path is considered to
 be relative to the configuration file in which the include directive
 was found.  See below for examples.
 
@@ -95,8 +101,7 @@ Conditional includes
 
 You can include a config file from another conditionally by setting a
 `includeIf.<condition>.path` variable to the name of the file to be
-included. The variable's value is treated the same way as
-`include.path`. `includeIf.<condition>.path` can be given multiple times.
+included.
 
 The condition starts with a keyword followed by a colon and some data
 whose format and meaning depends on the keyword. Supported keywords
-- 
2.13.0.447.g4d26bc97c
Previous: Jeff KingNext: Ramsay Jones
Message 13 of 22 in “Possible bug in includeIf / conditional includes”
  1. raphael.stolt@gmail.comMay 10, 2017
  2. Sebastian SchuberthMay 10, 2017
  3. Ævar Arnfjörð BjarmasonMay 10, 2017
  4. Raphael StoltMay 10, 2017
  5. Raphael StoltMay 10, 2017
  6. Jeff KingMay 11, 2017
  7. Jeff KingMay 11, 2017
  8. Ævar Arnfjörð BjarmasonMay 11, 2017
  9. Jeff KingMay 11, 2017
  10. Ævar Arnfjörð BjarmasonMay 11, 2017
  11. Jeff KingMay 11, 2017
  12. 0/4 doc improvements for config includesJeff King, May 11, 2017
  13. 1/4 docs/config: clarify include/includeIf relationshipJeff King, May 11, 2017
  14. Ramsay JonesMay 11, 2017
  15. Jeff KingMay 12, 2017
  16. 2/4 docs/config: give a relative includeIf exampleJeff King, May 11, 2017
  17. 3/4 docs/config: avoid the term "expand" for includesJeff King, May 11, 2017
  18. 4/4 docs/config: consistify include.path examplesJeff King, May 11, 2017
  19. Junio C HamanoMay 11, 2017
  20. Ævar Arnfjörð BjarmasonMay 11, 2017
  21. Junio C HamanoMay 11, 2017
  22. Jeff KingMay 11, 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.