Skip to content

Commit aa5439d

Browse files
committed
Merge branch 'jk/doc-config-include' into maint
Clarify documentation for include.path and includeIf.<condition>.path configuration variables. * jk/doc-config-include: docs/config: consistify include.path examples docs/config: avoid the term "expand" for includes docs/config: give a relative includeIf example docs/config: clarify include/includeIf relationship
2 parents f305016 + ce933eb commit aa5439d

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

Documentation/config.txt

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,20 @@ escape sequences) are invalid.
7979
Includes
8080
~~~~~~~~
8181

82+
The `include` and `includeIf` sections allow you to include config
83+
directives from another source. These sections behave identically to
84+
each other with the exception that `includeIf` sections may be ignored
85+
if their condition does not evaluate to true; see "Conditional includes"
86+
below.
87+
8288
You can include a config file from another by setting the special
83-
`include.path` variable to the name of the file to be included. The
84-
variable takes a pathname as its value, and is subject to tilde
85-
expansion. `include.path` can be given multiple times.
89+
`include.path` (or `includeIf.*.path`) variable to the name of the file
90+
to be included. The variable takes a pathname as its value, and is
91+
subject to tilde expansion. These variables can be given multiple times.
8692

87-
The included file is expanded immediately, as if its contents had been
88-
found at the location of the include directive. If the value of the
89-
`include.path` variable is a relative path, the path is considered to
93+
The contents of the included file are inserted immediately, as if they
94+
had been found at the location of the include directive. If the value of the
95+
variable is a relative path, the path is considered to
9096
be relative to the configuration file in which the include directive
9197
was found. See below for examples.
9298

@@ -95,8 +101,7 @@ Conditional includes
95101

96102
You can include a config file from another conditionally by setting a
97103
`includeIf.<condition>.path` variable to the name of the file to be
98-
included. The variable's value is treated the same way as
99-
`include.path`. `includeIf.<condition>.path` can be given multiple times.
104+
included.
100105

101106
The condition starts with a keyword followed by a colon and some data
102107
whose format and meaning depends on the keyword. Supported keywords
@@ -167,8 +172,8 @@ Example
167172

168173
[include]
169174
path = /path/to/foo.inc ; include by absolute path
170-
path = foo ; expand "foo" relative to the current file
171-
path = ~/foo ; expand "foo" in your `$HOME` directory
175+
path = foo.inc ; find "foo.inc" relative to the current file
176+
path = ~/foo.inc ; find "foo.inc" in your `$HOME` directory
172177

173178
; include if $GIT_DIR is /path/to/foo/.git
174179
[includeIf "gitdir:/path/to/foo/.git"]
@@ -182,6 +187,12 @@ Example
182187
[includeIf "gitdir:~/to/group/"]
183188
path = /path/to/foo.inc
184189

190+
; relative paths are always relative to the including
191+
; file (if the condition is true); their location is not
192+
; affected by the condition
193+
[includeIf "gitdir:/path/to/group/"]
194+
path = foo.inc
195+
185196
Values
186197
~~~~~~
187198

0 commit comments

Comments
 (0)