git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* Possible bug in includeIf / conditional includes
@ 2017-05-10 17:00 raphael.stolt
  2017-05-10 18:58 ` Sebastian Schuberth
  0 siblings, 1 reply; 22+ messages in thread
From: raphael.stolt @ 2017-05-10 17:00 UTC (permalink / raw)
  To: git

Hi there,

I might have stumbled over a bug in includeIf / conditional includes or maybe it's just as intended.

Current configuration which finds the conditional configuration.

~/.gitconfig
[includeIf "gitdir:~/Work/git-repos/oss/"]
  path = ~/Work/git-repos/oss/.oss-gitconfig

Expected configuration which doesn't find the conditional configuration:

~/.gitconfig
[includeIf "gitdir:~/Work/git-repos/oss/"]
  path = .oss-gitconfig

Best regards,

Raphael Stolt

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Possible bug in includeIf / conditional includes
  2017-05-10 17:00 Possible bug in includeIf / conditional includes raphael.stolt
@ 2017-05-10 18:58 ` Sebastian Schuberth
  2017-05-10 19:48   ` Ævar Arnfjörð Bjarmason
  0 siblings, 1 reply; 22+ messages in thread
From: Sebastian Schuberth @ 2017-05-10 18:58 UTC (permalink / raw)
  To: git

On 2017-05-10 19:00, raphael.stolt@gmail.com wrote:

> Current configuration which finds the conditional configuration.
> 
> ~/.gitconfig
> [includeIf "gitdir:~/Work/git-repos/oss/"]
>    path = ~/Work/git-repos/oss/.oss-gitconfig
> 
> Expected configuration which doesn't find the conditional configuration:
> 
> ~/.gitconfig
> [includeIf "gitdir:~/Work/git-repos/oss/"]
>    path = .oss-gitconfig

My guess is, because includeIf might contain other conditionals than 
"gitdir", the generic convention is to always use an absolute path for 
"path".

-- 
Sebastian Schuberth


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Possible bug in includeIf / conditional includes
  2017-05-10 18:58 ` Sebastian Schuberth
@ 2017-05-10 19:48   ` Ævar Arnfjörð Bjarmason
  2017-05-10 21:21     ` Raphael Stolt
  2017-05-11  6:26     ` Jeff King
  0 siblings, 2 replies; 22+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2017-05-10 19:48 UTC (permalink / raw)
  To: Sebastian Schuberth, raphael.stolt
  Cc: Git Mailing List, Nguyễn Thái Ngọc Duy

On Wed, May 10, 2017 at 8:58 PM, Sebastian Schuberth
<sschuberth@gmail.com> wrote:
> On 2017-05-10 19:00, raphael.stolt@gmail.com wrote:
>
>> Current configuration which finds the conditional configuration.
>>
>> ~/.gitconfig
>> [includeIf "gitdir:~/Work/git-repos/oss/"]
>>    path = ~/Work/git-repos/oss/.oss-gitconfig
>>
>> Expected configuration which doesn't find the conditional configuration:
>>
>> ~/.gitconfig
>> [includeIf "gitdir:~/Work/git-repos/oss/"]
>>    path = .oss-gitconfig
>
>
> My guess is, because includeIf might contain other conditionals than
> "gitdir", the generic convention is to always use an absolute path for
> "path".

[CC'd OP Raphael Stolt, please reply-all]

In both cases the conditional is the same, but the path is relative
v.s. absolute.

Raphael: Does the config get included if you cd to
~/Work/git-repos/oss/? From git-config(1):

---cut---
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
be relative to the configuration file in which the include directive
was found.  See below for examples.
---cut---

The commit that added IncludeIf (3efd0bedc6) does something with
relative path (just skimming, need to get to other things), but unlike
[Include] the docs don't explicitly mention what it's supposed to do
with that, and all the examples show absolute paths.

So whether this is a bug in the code or not it seems to definitely be
a doc bug, whatever it does with relative files should be in the docs.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Possible bug in includeIf / conditional includes
  2017-05-10 19:48   ` Ævar Arnfjörð Bjarmason
@ 2017-05-10 21:21     ` Raphael Stolt
  2017-05-10 21:37       ` Raphael Stolt
  2017-05-11  6:26     ` Jeff King
  1 sibling, 1 reply; 22+ messages in thread
From: Raphael Stolt @ 2017-05-10 21:21 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason
  Cc: Sebastian Schuberth, Git Mailing List,
	Nguyễn Thái Ngọc Duy

> 
> Am 10.05.2017 um 21:48 schrieb Ævar Arnfjörð Bjarmason <avarab@gmail.com>:
> 
> On Wed, May 10, 2017 at 8:58 PM, Sebastian Schuberth
> <sschuberth@gmail.com> wrote:
>> On 2017-05-10 19:00, raphael.stolt@gmail.com wrote:
>> 
>>> Current configuration which finds the conditional configuration.
>>> 

a)

>>> ~/.gitconfig
>>> [includeIf "gitdir:~/Work/git-repos/oss/"]
>>>   path = ~/Work/git-repos/oss/.oss-gitconfig
>>> 
>>> Expected configuration which doesn't find the conditional configuration:
>>> 

b)

>>> ~/.gitconfig
>>> [includeIf "gitdir:~/Work/git-repos/oss/"]
>>>   path = .oss-gitconfig
>> 
>> 
>> My guess is, because includeIf might contain other conditionals than
>> "gitdir", the generic convention is to always use an absolute path for
>> "path".
> 
> [CC'd OP Raphael Stolt, please reply-all]
> 
> In both cases the conditional is the same, but the path is relative
> v.s. absolute.
> 
> Raphael: Does the config get included if you cd to
> ~/Work/git-repos/oss/? From git-config(1):

Given I’m in a repo in ~/Work/git-repos/oss/ e.g. ~/Work/git-repos/oss/project-repo-a and I’m using config a) 
the config is used from ~/Work/git-repos/oss/.oss-gitconfig

Given I’m in a repo in ~/Work/git-repos/oss/ e.g. ~/Work/git-repos/oss/project-repo-a and I’m using config b) 
the global config is used because there is no .oss-gitconfig in $HOME.

I guess it’s an intended behavior since conditional configuration files __SHOULD__ reside in $HOME rather than 
in my case in ~/Work/git-repos/oss.

> 
> ---cut---
> 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
> be relative to the configuration file in which the include directive
> was found.  See below for examples.
> ---cut---
> 
> The commit that added IncludeIf (3efd0bedc6) does something with
> relative path (just skimming, need to get to other things), but unlike
> [Include] the docs don't explicitly mention what it's supposed to do
> with that, and all the examples show absolute paths.
> 
> So whether this is a bug in the code or not it seems to definitely be
> a doc bug, whatever it does with relative files should be in the docs.
+ 1

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Possible bug in includeIf / conditional includes
  2017-05-10 21:21     ` Raphael Stolt
@ 2017-05-10 21:37       ` Raphael Stolt
  0 siblings, 0 replies; 22+ messages in thread
From: Raphael Stolt @ 2017-05-10 21:37 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason
  Cc: Sebastian Schuberth, Git Mailing List,
	Nguyễn Thái Ngọc Duy


> Am 10.05.2017 um 23:21 schrieb Raphael Stolt <raphael.stolt@gmail.com>:
> 
>> 
>> Am 10.05.2017 um 21:48 schrieb Ævar Arnfjörð Bjarmason <avarab@gmail.com>:
>> 
>> On Wed, May 10, 2017 at 8:58 PM, Sebastian Schuberth
>> <sschuberth@gmail.com> wrote:
>>> On 2017-05-10 19:00, raphael.stolt@gmail.com wrote:
>>> 
>>>> Current configuration which finds the conditional configuration.
>>>> 
> 
> a)
> 
>>>> ~/.gitconfig
>>>> [includeIf "gitdir:~/Work/git-repos/oss/"]
>>>>  path = ~/Work/git-repos/oss/.oss-gitconfig
>>>> 
>>>> Expected configuration which doesn't find the conditional configuration:
>>>> 
> 
> b)
> 
>>>> ~/.gitconfig
>>>> [includeIf "gitdir:~/Work/git-repos/oss/"]
>>>>  path = .oss-gitconfig
>>> 
>>> 
>>> My guess is, because includeIf might contain other conditionals than
>>> "gitdir", the generic convention is to always use an absolute path for
>>> "path".
>> 
>> [CC'd OP Raphael Stolt, please reply-all]
>> 
>> In both cases the conditional is the same, but the path is relative
>> v.s. absolute.
>> 
>> Raphael: Does the config get included if you cd to
>> ~/Work/git-repos/oss/? From git-config(1):
> 
> Given I’m in a repo in ~/Work/git-repos/oss/ e.g. ~/Work/git-repos/oss/project-repo-a and I’m using config a) 
> the config is used from ~/Work/git-repos/oss/.oss-gitconfig
> 
> Given I’m in a repo in ~/Work/git-repos/oss/ e.g. ~/Work/git-repos/oss/project-repo-a and I’m using config b) 
> the global config is used because there is no .oss-gitconfig in $HOME.

Given I’m in ~/Work/git-repos/oss and I’m using config b)
also the global config (~/.gitconfig) is used.

> 
> I guess it’s an intended behavior since conditional configuration files __SHOULD__ reside in $HOME rather than 
> in my case in ~/Work/git-repos/oss.
> 
>> 
>> ---cut---
>> 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
>> be relative to the configuration file in which the include directive
>> was found.  See below for examples.
>> ---cut---
>> 
>> The commit that added IncludeIf (3efd0bedc6) does something with
>> relative path (just skimming, need to get to other things), but unlike
>> [Include] the docs don't explicitly mention what it's supposed to do
>> with that, and all the examples show absolute paths.
>> 
>> So whether this is a bug in the code or not it seems to definitely be
>> a doc bug, whatever it does with relative files should be in the docs.
> + 1


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Possible bug in includeIf / conditional includes
  2017-05-10 19:48   ` Ævar Arnfjörð Bjarmason
  2017-05-10 21:21     ` Raphael Stolt
@ 2017-05-11  6:26     ` Jeff King
  2017-05-11  6:29       ` Jeff King
  1 sibling, 1 reply; 22+ messages in thread
From: Jeff King @ 2017-05-11  6:26 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason
  Cc: Sebastian Schuberth, raphael.stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy

On Wed, May 10, 2017 at 09:48:05PM +0200, Ævar Arnfjörð Bjarmason wrote:

> In both cases the conditional is the same, but the path is relative
> v.s. absolute.
> 
> Raphael: Does the config get included if you cd to
> ~/Work/git-repos/oss/? From git-config(1):

That shouldn't matter for relative paths in the "path" value; they're
never based on the cwd.  E.g., with this setup:

  export HOME=$PWD
  git config -f .gitconfig foo.bar "base value"
  git config -f .gitconfig includeIf."gitdir:$PWD/repo/".path included
  git config -f included foo.bar "HOME include"
  git init -q repo && cd repo
  git config -f included foo.bar "working tree include"
  git config -f .git/included foo.bar "GIT_DIR include"
  git config foo.bar

Looking at foo.bar should always give you one of

  HOME include - if you are in the repo that matches the includeIf
  base value - if you are not

but never the "working tree" or "GIT_DIR" includes.

> ---cut---
> 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
> be relative to the configuration file in which the include directive
> was found.  See below for examples.
> ---cut---
> 
> The commit that added IncludeIf (3efd0bedc6) does something with
> relative path (just skimming, need to get to other things), but unlike
> [Include] the docs don't explicitly mention what it's supposed to do
> with that, and all the examples show absolute paths.
> 
> So whether this is a bug in the code or not it seems to definitely be
> a doc bug, whatever it does with relative files should be in the docs.

The includeIf variables should behave exactly as the documentation you
quoted above. The conditional impacts whether we respect the keys in
that section, but not the meaning of the keys.

I thought that was clear, but as somebody who was involved in the
development of both the original and the conditional includes, my
opinion probably doesn't count. I wouldn't mind a patch to make that
more explicit in the documentation.

-Peff

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Possible bug in includeIf / conditional includes
  2017-05-11  6:26     ` Jeff King
@ 2017-05-11  6:29       ` Jeff King
  2017-05-11  7:19         ` Ævar Arnfjörð Bjarmason
  0 siblings, 1 reply; 22+ messages in thread
From: Jeff King @ 2017-05-11  6:29 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason
  Cc: Sebastian Schuberth, raphael.stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy

On Thu, May 11, 2017 at 02:26:16AM -0400, Jeff King wrote:

> > So whether this is a bug in the code or not it seems to definitely be
> > a doc bug, whatever it does with relative files should be in the docs.
> 
> The includeIf variables should behave exactly as the documentation you
> quoted above. The conditional impacts whether we respect the keys in
> that section, but not the meaning of the keys.
> 
> I thought that was clear, but as somebody who was involved in the
> development of both the original and the conditional includes, my
> opinion probably doesn't count. I wouldn't mind a patch to make that
> more explicit in the documentation.

I figured I'd just do this while we're thinking about it, since it
should be trivial. But it's actually there already:

  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`.

I'm open to suggestions to make that more obvious, though.

-Peff

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Possible bug in includeIf / conditional includes
  2017-05-11  6:29       ` Jeff King
@ 2017-05-11  7:19         ` Ævar Arnfjörð Bjarmason
  2017-05-11  7:42           ` Jeff King
  0 siblings, 1 reply; 22+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2017-05-11  7:19 UTC (permalink / raw)
  To: Jeff King
  Cc: Sebastian Schuberth, Raphael Stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy

On Thu, May 11, 2017 at 8:29 AM, Jeff King <peff@peff.net> wrote:
> On Thu, May 11, 2017 at 02:26:16AM -0400, Jeff King wrote:
>
>> > So whether this is a bug in the code or not it seems to definitely be
>> > a doc bug, whatever it does with relative files should be in the docs.
>>
>> The includeIf variables should behave exactly as the documentation you
>> quoted above. The conditional impacts whether we respect the keys in
>> that section, but not the meaning of the keys.
>>
>> I thought that was clear, but as somebody who was involved in the
>> development of both the original and the conditional includes, my
>> opinion probably doesn't count. I wouldn't mind a patch to make that
>> more explicit in the documentation.
>
> I figured I'd just do this while we're thinking about it, since it
> should be trivial. But it's actually there already:
>
>   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`.
>
> I'm open to suggestions to make that more obvious, though.

Yes I started writing up a patch to make this better but once I
started doing that it wasn't really any better.

FWIW the reasons I didn't find this while quickly skimming the thing:

1. It says "The included file is expanded immediately, as if its
contents had been found at the location of the include directive.". At
first I thought this referred to glob expansion, not
s/expanded/interpolated/, the example section uses "expand" in the
context of pathnames, which caused the confusion.

Maybe this would make that less confusing by saying the same thing
without using the same phrasing to mean completely different things:

diff --git a/Documentation/config.txt b/Documentation/config.txt
index 475e874d51..49855353c7 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -167,8 +167,8 @@ Example

        [include]
                path = /path/to/foo.inc ; include by absolute path
-               path = foo ; expand "foo" relative to the current file
-               path = ~/foo ; expand "foo" in your `$HOME` directory
+               path = foo ; find & include "foo" relative to the current file
+               path = ~/foo ; find & include "foo" in your `$HOME` directory

        ; include if $GIT_DIR is /path/to/foo/.git
        [includeIf "gitdir:/path/to/foo/.git"]

2. There is no example of such expansion for IncludeIf, prose should
always be backed up by examples for the lazy reader when possible:

diff --git a/Documentation/config.txt b/Documentation/config.txt
index 475e874d51..fc4b87cd7e 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -173,6 +173,8 @@ Example
        ; include if $GIT_DIR is /path/to/foo/.git
        [includeIf "gitdir:/path/to/foo/.git"]
                path = /path/to/foo.inc
+               path = foo ; find & include "foo" relative to the current file
+               path = ~/foo ; find & include "foo" in your `$HOME` directory

        ; include for all repositories inside /path/to/group
        [includeIf "gitdir:/path/to/group/"]

3. When I read reference docs I almost never start at the beginning &
read it all the way through, in this case I thought I could help
someone out by maybe answering a question on the ML quickly, so I went
to the examples section, found no example (fixed above), then searched
for "relative" or "path" in my pager and the only results were for the
"Includes" section that has a paragraph that's only talking about
"include.path".

Of course we say "same rules apply" below, but I managed not to spot
that. Maybe this:

diff --git a/Documentation/config.txt b/Documentation/config.txt
index 475e874d51..b35d9a7b80 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -95,8 +95,11 @@ 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.
+
+If variable's value is a relative path it's treated the same way as
+`include.path`. `includeIf.<condition>.path` can also be given
+multiple times.

 The condition starts with a keyword followed by a colon and some data
 whose format and meaning depends on the keyword. Supported keywords

Would make it easier to find. Here we say the same thing but include
both "path" & "relative".

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: Possible bug in includeIf / conditional includes
  2017-05-11  7:19         ` Ævar Arnfjörð Bjarmason
@ 2017-05-11  7:42           ` Jeff King
  2017-05-11  7:49             ` Ævar Arnfjörð Bjarmason
  2017-05-11  7:54             ` Possible bug in includeIf / conditional includes Junio C Hamano
  0 siblings, 2 replies; 22+ messages in thread
From: Jeff King @ 2017-05-11  7:42 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason
  Cc: Sebastian Schuberth, Raphael Stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy

On Thu, May 11, 2017 at 09:19:50AM +0200, Ævar Arnfjörð Bjarmason wrote:

> 1. It says "The included file is expanded immediately, as if its
> contents had been found at the location of the include directive.". At
> first I thought this referred to glob expansion, not
> s/expanded/interpolated/, the example section uses "expand" in the
> context of pathnames, which caused the confusion.

Perhaps it should say "The contents of the included file are expanded
immediately, as if they had been found at..."?

> Maybe this would make that less confusing by saying the same thing
> without using the same phrasing to mean completely different things:
> 
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index 475e874d51..49855353c7 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -167,8 +167,8 @@ Example
> 
>         [include]
>                 path = /path/to/foo.inc ; include by absolute path
> -               path = foo ; expand "foo" relative to the current file
> -               path = ~/foo ; expand "foo" in your `$HOME` directory
> +               path = foo ; find & include "foo" relative to the current file
> +               path = ~/foo ; find & include "foo" in your `$HOME` directory

Yeah, probably makes sense to use a different word than "expand" here.

> 2. There is no example of such expansion for IncludeIf, prose should
> always be backed up by examples for the lazy reader when possible:
> 
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index 475e874d51..fc4b87cd7e 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -173,6 +173,8 @@ Example
>         ; include if $GIT_DIR is /path/to/foo/.git
>         [includeIf "gitdir:/path/to/foo/.git"]
>                 path = /path/to/foo.inc
> +               path = foo ; find & include "foo" relative to the current file
> +               path = ~/foo ; find & include "foo" in your `$HOME` directory
> 
>         ; include for all repositories inside /path/to/group
>         [includeIf "gitdir:/path/to/group/"]

Yeah, makes sense.

> 3. When I read reference docs I almost never start at the beginning &
> read it all the way through, in this case I thought I could help
> someone out by maybe answering a question on the ML quickly, so I went
> to the examples section, found no example (fixed above), then searched
> for "relative" or "path" in my pager and the only results were for the
> "Includes" section that has a paragraph that's only talking about
> "include.path".

I do, too. And I'm all in favor of structuring things to accommodate
that flow. But at some point we have to assume the user actually reads
the documentation. :)

> Of course we say "same rules apply" below, but I managed not to spot
> that. Maybe this:
> 
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index 475e874d51..b35d9a7b80 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -95,8 +95,11 @@ 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.
> +
> +If variable's value is a relative path it's treated the same way as
> +`include.path`. `includeIf.<condition>.path` can also be given
> +multiple times.

I don't like this because it copies the rules for _one_ property to the
conditional section. What happens when you're looking for some other
property of include.path?

I think in your case you found the "relative" section in the earlier
paragraph, but there was no link there to the includeIf behavior. So
should that earlier paragraph just get the "includeIf.path behaves the
same way" mention?

I suspect that whole paragraph under Includes could be reworded to make
it clear that anything it is saying applies equally to include.$key and
includeIf.*.$key, and then that would future-proof us for other
modifications.

-Peff

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Possible bug in includeIf / conditional includes
  2017-05-11  7:42           ` Jeff King
@ 2017-05-11  7:49             ` Ævar Arnfjörð Bjarmason
  2017-05-11  7:54               ` Jeff King
  2017-05-11  7:54             ` Possible bug in includeIf / conditional includes Junio C Hamano
  1 sibling, 1 reply; 22+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2017-05-11  7:49 UTC (permalink / raw)
  To: Jeff King
  Cc: Sebastian Schuberth, Raphael Stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy

On Thu, May 11, 2017 at 9:42 AM, Jeff King <peff@peff.net> wrote:
> On Thu, May 11, 2017 at 09:19:50AM +0200, Ævar Arnfjörð Bjarmason wrote:
>
>> 1. It says "The included file is expanded immediately, as if its
>> contents had been found at the location of the include directive.". At
>> first I thought this referred to glob expansion, not
>> s/expanded/interpolated/, the example section uses "expand" in the
>> context of pathnames, which caused the confusion.
>
> Perhaps it should say "The contents of the included file are expanded
> immediately, as if they had been found at..."?
>
>> Maybe this would make that less confusing by saying the same thing
>> without using the same phrasing to mean completely different things:
>>
>> diff --git a/Documentation/config.txt b/Documentation/config.txt
>> index 475e874d51..49855353c7 100644
>> --- a/Documentation/config.txt
>> +++ b/Documentation/config.txt
>> @@ -167,8 +167,8 @@ Example
>>
>>         [include]
>>                 path = /path/to/foo.inc ; include by absolute path
>> -               path = foo ; expand "foo" relative to the current file
>> -               path = ~/foo ; expand "foo" in your `$HOME` directory
>> +               path = foo ; find & include "foo" relative to the current file
>> +               path = ~/foo ; find & include "foo" in your `$HOME` directory
>
> Yeah, probably makes sense to use a different word than "expand" here.
>
>> 2. There is no example of such expansion for IncludeIf, prose should
>> always be backed up by examples for the lazy reader when possible:
>>
>> diff --git a/Documentation/config.txt b/Documentation/config.txt
>> index 475e874d51..fc4b87cd7e 100644
>> --- a/Documentation/config.txt
>> +++ b/Documentation/config.txt
>> @@ -173,6 +173,8 @@ Example
>>         ; include if $GIT_DIR is /path/to/foo/.git
>>         [includeIf "gitdir:/path/to/foo/.git"]
>>                 path = /path/to/foo.inc
>> +               path = foo ; find & include "foo" relative to the current file
>> +               path = ~/foo ; find & include "foo" in your `$HOME` directory
>>
>>         ; include for all repositories inside /path/to/group
>>         [includeIf "gitdir:/path/to/group/"]
>
> Yeah, makes sense.
>
>> 3. When I read reference docs I almost never start at the beginning &
>> read it all the way through, in this case I thought I could help
>> someone out by maybe answering a question on the ML quickly, so I went
>> to the examples section, found no example (fixed above), then searched
>> for "relative" or "path" in my pager and the only results were for the
>> "Includes" section that has a paragraph that's only talking about
>> "include.path".
>
> I do, too. And I'm all in favor of structuring things to accommodate
> that flow. But at some point we have to assume the user actually reads
> the documentation. :)
>
>> Of course we say "same rules apply" below, but I managed not to spot
>> that. Maybe this:
>>
>> diff --git a/Documentation/config.txt b/Documentation/config.txt
>> index 475e874d51..b35d9a7b80 100644
>> --- a/Documentation/config.txt
>> +++ b/Documentation/config.txt
>> @@ -95,8 +95,11 @@ 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.
>> +
>> +If variable's value is a relative path it's treated the same way as
>> +`include.path`. `includeIf.<condition>.path` can also be given
>> +multiple times.
>
> I don't like this because it copies the rules for _one_ property to the
> conditional section. What happens when you're looking for some other
> property of include.path?

Yeah, as I said once I wrote it up I found it wasn't really any
better, but just wanted to send an explanation for why I didn't find
it while I remembered, as a sort of case study.

> I think in your case you found the "relative" section in the earlier
> paragraph, but there was no link there to the includeIf behavior. So
> should that earlier paragraph just get the "includeIf.path behaves the
> same way" mention?
>
> I suspect that whole paragraph under Includes could be reworded to make
> it clear that anything it is saying applies equally to include.$key and
> includeIf.*.$key, and then that would future-proof us for other
> modifications.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Possible bug in includeIf / conditional includes
  2017-05-11  7:42           ` Jeff King
  2017-05-11  7:49             ` Ævar Arnfjörð Bjarmason
@ 2017-05-11  7:54             ` Junio C Hamano
  2017-05-11  7:56               ` Jeff King
  1 sibling, 1 reply; 22+ messages in thread
From: Junio C Hamano @ 2017-05-11  7:54 UTC (permalink / raw)
  To: Jeff King
  Cc: Ævar Arnfjörð Bjarmason, Sebastian Schuberth,
	Raphael Stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy

Jeff King <peff@peff.net> writes:

> On Thu, May 11, 2017 at 09:19:50AM +0200, Ævar Arnfjörð Bjarmason wrote:
>
>> 1. It says "The included file is expanded immediately, as if its
>> contents had been found at the location of the include directive.". At
>> first I thought this referred to glob expansion, not
>> s/expanded/interpolated/, the example section uses "expand" in the
>> context of pathnames, which caused the confusion.
>
> Perhaps it should say "The contents of the included file are expanded
> immediately, as if they had been found at..."?

Or s/expanded/inserted/, perhaps?  The word "expand" does not quite
click to me in this context.  Just like Ævar, I associate the word
with an act of replacing some template-with-blank with the result of
blanks-in-the-template-filled.

Regarding 2. and 3., I agree with your comments.

Thanks.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Possible bug in includeIf / conditional includes
  2017-05-11  7:49             ` Ævar Arnfjörð Bjarmason
@ 2017-05-11  7:54               ` Jeff King
  2017-05-11  9:09                 ` [PATCH 0/4] doc improvements for config includes Jeff King
  0 siblings, 1 reply; 22+ messages in thread
From: Jeff King @ 2017-05-11  7:54 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason
  Cc: Sebastian Schuberth, Raphael Stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy

On Thu, May 11, 2017 at 09:49:09AM +0200, Ævar Arnfjörð Bjarmason wrote:

> > I don't like this because it copies the rules for _one_ property to the
> > conditional section. What happens when you're looking for some other
> > property of include.path?
> 
> Yeah, as I said once I wrote it up I found it wasn't really any
> better, but just wanted to send an explanation for why I didn't find
> it while I remembered, as a sort of case study.
> [...]
> > I suspect that whole paragraph under Includes could be reworded to make
> > it clear that anything it is saying applies equally to include.$key and
> > includeIf.*.$key, and then that would future-proof us for other
> > modifications.

What about this:

diff --git a/Documentation/config.txt b/Documentation/config.txt
index 475e874d5..e44ad21eb 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -80,13 +80,13 @@ Includes
 ~~~~~~~~
 
 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` and `includeIf.*.path` variables 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 +95,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 (see the "Includes" section above for more details).
 
 The condition starts with a keyword followed by a colon and some data
 whose format and meaning depends on the keyword. Supported keywords

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: Possible bug in includeIf / conditional includes
  2017-05-11  7:54             ` Possible bug in includeIf / conditional includes Junio C Hamano
@ 2017-05-11  7:56               ` Jeff King
  0 siblings, 0 replies; 22+ messages in thread
From: Jeff King @ 2017-05-11  7:56 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: Ævar Arnfjörð Bjarmason, Sebastian Schuberth,
	Raphael Stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy

On Thu, May 11, 2017 at 12:54:19AM -0700, Junio C Hamano wrote:

> Jeff King <peff@peff.net> writes:
> 
> > On Thu, May 11, 2017 at 09:19:50AM +0200, Ævar Arnfjörð Bjarmason wrote:
> >
> >> 1. It says "The included file is expanded immediately, as if its
> >> contents had been found at the location of the include directive.". At
> >> first I thought this referred to glob expansion, not
> >> s/expanded/interpolated/, the example section uses "expand" in the
> >> context of pathnames, which caused the confusion.
> >
> > Perhaps it should say "The contents of the included file are expanded
> > immediately, as if they had been found at..."?
> 
> Or s/expanded/inserted/, perhaps?  The word "expand" does not quite
> click to me in this context.  Just like Ævar, I associate the word
> with an act of replacing some template-with-blank with the result of
> blanks-in-the-template-filled.

Yeah, that is much better. I think "expand" here originally meant "read
the contents of", but when we talk about the contents already there is
nothing left to expand.

I agree "inserted" is probably the right word (or even just "read" or
"parsed" or something).

-Peff

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 0/4] doc improvements for config includes
  2017-05-11  7:54               ` Jeff King
@ 2017-05-11  9:09                 ` Jeff King
  2017-05-11  9:10                   ` [PATCH 1/4] docs/config: clarify include/includeIf relationship Jeff King
                                     ` (4 more replies)
  0 siblings, 5 replies; 22+ messages in thread
From: Jeff King @ 2017-05-11  9:09 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason
  Cc: Sebastian Schuberth, Raphael Stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy

On Thu, May 11, 2017 at 03:54:37AM -0400, Jeff King wrote:

> On Thu, May 11, 2017 at 09:49:09AM +0200, Ævar Arnfjörð Bjarmason wrote:
> 
> > > I don't like this because it copies the rules for _one_ property to the
> > > conditional section. What happens when you're looking for some other
> > > property of include.path?
> > 
> > Yeah, as I said once I wrote it up I found it wasn't really any
> > better, but just wanted to send an explanation for why I didn't find
> > it while I remembered, as a sort of case study.
> > [...]
> > > I suspect that whole paragraph under Includes could be reworded to make
> > > it clear that anything it is saying applies equally to include.$key and
> > > includeIf.*.$key, and then that would future-proof us for other
> > > modifications.
> 
> What about this:

I think this is the right path, but I actually ended up with an
introductory paragraph about the two sections. I hope it makes the same
point but is a bit less clunky.

Here's a series that I think covers all the bits discussed here, and a
few others.

  [1/4]: docs/config: clarify include/includeIf relationship
  [2/4]: docs/config: give a relative includeIf example
  [3/4]: docs/config: avoid the term "expand" for includes
  [4/4]: docs/config: consistify include.path examples

 Documentation/config.txt | 31 +++++++++++++++++++++----------
 1 file changed, 21 insertions(+), 10 deletions(-)

-Peff

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 1/4] docs/config: clarify include/includeIf relationship
  2017-05-11  9:09                 ` [PATCH 0/4] doc improvements for config includes Jeff King
@ 2017-05-11  9:10                   ` Jeff King
  2017-05-11 16:47                     ` Ramsay Jones
  2017-05-11  9:11                   ` [PATCH 2/4] docs/config: give a relative includeIf example Jeff King
                                     ` (3 subsequent siblings)
  4 siblings, 1 reply; 22+ messages in thread
From: Jeff King @ 2017-05-11  9:10 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason
  Cc: Sebastian Schuberth, Raphael Stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy

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


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 2/4] docs/config: give a relative includeIf example
  2017-05-11  9:09                 ` [PATCH 0/4] doc improvements for config includes Jeff King
  2017-05-11  9:10                   ` [PATCH 1/4] docs/config: clarify include/includeIf relationship Jeff King
@ 2017-05-11  9:11                   ` Jeff King
  2017-05-11  9:13                   ` [PATCH 3/4] docs/config: avoid the term "expand" for includes Jeff King
                                     ` (2 subsequent siblings)
  4 siblings, 0 replies; 22+ messages in thread
From: Jeff King @ 2017-05-11  9:11 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason
  Cc: Sebastian Schuberth, Raphael Stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy

The changes in the previous commit hopefully clarify that
the evaluation of an include "path" variable is the same no
matter if it's in a conditional section or not. But since
this question came up on the list, let's add an example that
makes it obvious.

Signed-off-by: Jeff King <peff@peff.net>
---
 Documentation/config.txt | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/config.txt b/Documentation/config.txt
index d5a453ed3..929776954 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -187,6 +187,12 @@ Example
 	[includeIf "gitdir:~/to/group/"]
 		path = /path/to/foo.inc
 
+	; relative paths are always relative to the including
+	; file (if the condition is true); their location is not
+	; affected by the condition
+	[includeIf "gitdir:/path/to/group/"]
+		path = foo.inc
+
 Values
 ~~~~~~
 
-- 
2.13.0.447.g4d26bc97c


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 3/4] docs/config: avoid the term "expand" for includes
  2017-05-11  9:09                 ` [PATCH 0/4] doc improvements for config includes Jeff King
  2017-05-11  9:10                   ` [PATCH 1/4] docs/config: clarify include/includeIf relationship Jeff King
  2017-05-11  9:11                   ` [PATCH 2/4] docs/config: give a relative includeIf example Jeff King
@ 2017-05-11  9:13                   ` Jeff King
  2017-05-11  9:14                   ` [PATCH 4/4] docs/config: consistify include.path examples Jeff King
  2017-05-11  9:29                   ` [PATCH 0/4] doc improvements for config includes Ævar Arnfjörð Bjarmason
  4 siblings, 0 replies; 22+ messages in thread
From: Jeff King @ 2017-05-11  9:13 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason
  Cc: Sebastian Schuberth, Raphael Stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy

Using the word "expand" to refer to including the contents
of another config file isn't really accurate, since it's a
verbatim insertion. And it can cause confusion with the
expanding of the path itself via things like "~".

Let's clarify when we are referring to the contents versus
the filename, and use appropriate verbs in each case.

Signed-off-by: Jeff King <peff@peff.net>
---
I dropped the "& insert" from your suggestion, because I think it
clear in the context of the earlier "include by absolute path" (and I
think it reads better).

 Documentation/config.txt | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/Documentation/config.txt b/Documentation/config.txt
index 929776954..70f79ac39 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -90,8 +90,8 @@ You can include a config file from another by setting the special
 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
+The contents of the included file are inserted immediately, as if they
+had been found at the location of the include directive. If the value of the
 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.
@@ -172,8 +172,8 @@ Example
 
 	[include]
 		path = /path/to/foo.inc ; include by absolute path
-		path = foo ; expand "foo" relative to the current file
-		path = ~/foo ; expand "foo" in your `$HOME` directory
+		path = foo ; find "foo" relative to the current file
+		path = ~/foo ; find "foo" in your `$HOME` directory
 
 	; include if $GIT_DIR is /path/to/foo/.git
 	[includeIf "gitdir:/path/to/foo/.git"]
-- 
2.13.0.447.g4d26bc97c


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 4/4] docs/config: consistify include.path examples
  2017-05-11  9:09                 ` [PATCH 0/4] doc improvements for config includes Jeff King
                                     ` (2 preceding siblings ...)
  2017-05-11  9:13                   ` [PATCH 3/4] docs/config: avoid the term "expand" for includes Jeff King
@ 2017-05-11  9:14                   ` Jeff King
  2017-05-11  9:41                     ` Junio C Hamano
  2017-05-11  9:29                   ` [PATCH 0/4] doc improvements for config includes Ævar Arnfjörð Bjarmason
  4 siblings, 1 reply; 22+ messages in thread
From: Jeff King @ 2017-05-11  9:14 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason
  Cc: Sebastian Schuberth, Raphael Stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy

Most of the include examples use "foo.inc", but some use
"foo". Since the string of examples are meant to show
variations and how they differ, it's a good idea to change
only one thing at a time. The filename differences are not
relevant to what we're trying to show.

Signed-off-by: Jeff King <peff@peff.net>
---
And yes, I just invented the word consistify. "make X consistent" hides
the meaning at the end, and I couldn't think of a more concise verb.
Prescriptivists beware. :)

 Documentation/config.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/config.txt b/Documentation/config.txt
index 70f79ac39..7b08df732 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -172,8 +172,8 @@ Example
 
 	[include]
 		path = /path/to/foo.inc ; include by absolute path
-		path = foo ; find "foo" relative to the current file
-		path = ~/foo ; find "foo" in your `$HOME` directory
+		path = foo.inc ; find "foo.inc" relative to the current file
+		path = ~/foo.inc ; find "foo.inc" in your `$HOME` directory
 
 	; include if $GIT_DIR is /path/to/foo/.git
 	[includeIf "gitdir:/path/to/foo/.git"]
-- 
2.13.0.447.g4d26bc97c

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH 0/4] doc improvements for config includes
  2017-05-11  9:09                 ` [PATCH 0/4] doc improvements for config includes Jeff King
                                     ` (3 preceding siblings ...)
  2017-05-11  9:14                   ` [PATCH 4/4] docs/config: consistify include.path examples Jeff King
@ 2017-05-11  9:29                   ` Ævar Arnfjörð Bjarmason
  4 siblings, 0 replies; 22+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2017-05-11  9:29 UTC (permalink / raw)
  To: Jeff King
  Cc: Sebastian Schuberth, Raphael Stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy

On Thu, May 11, 2017 at 11:09 AM, Jeff King <peff@peff.net> wrote:
> On Thu, May 11, 2017 at 03:54:37AM -0400, Jeff King wrote:
>
>> On Thu, May 11, 2017 at 09:49:09AM +0200, Ævar Arnfjörð Bjarmason wrote:
>>
>> > > I don't like this because it copies the rules for _one_ property to the
>> > > conditional section. What happens when you're looking for some other
>> > > property of include.path?
>> >
>> > Yeah, as I said once I wrote it up I found it wasn't really any
>> > better, but just wanted to send an explanation for why I didn't find
>> > it while I remembered, as a sort of case study.
>> > [...]
>> > > I suspect that whole paragraph under Includes could be reworded to make
>> > > it clear that anything it is saying applies equally to include.$key and
>> > > includeIf.*.$key, and then that would future-proof us for other
>> > > modifications.
>>
>> What about this:
>
> I think this is the right path, but I actually ended up with an
> introductory paragraph about the two sections. I hope it makes the same
> point but is a bit less clunky.
>
> Here's a series that I think covers all the bits discussed here, and a
> few others.
>
>   [1/4]: docs/config: clarify include/includeIf relationship
>   [2/4]: docs/config: give a relative includeIf example
>   [3/4]: docs/config: avoid the term "expand" for includes
>   [4/4]: docs/config: consistify include.path examples

This whole thing looks great to me. Thanks!

Reviewed-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>

>  Documentation/config.txt | 31 +++++++++++++++++++++----------
>  1 file changed, 21 insertions(+), 10 deletions(-)
>
> -Peff

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 4/4] docs/config: consistify include.path examples
  2017-05-11  9:14                   ` [PATCH 4/4] docs/config: consistify include.path examples Jeff King
@ 2017-05-11  9:41                     ` Junio C Hamano
  0 siblings, 0 replies; 22+ messages in thread
From: Junio C Hamano @ 2017-05-11  9:41 UTC (permalink / raw)
  To: Jeff King
  Cc: Ævar Arnfjörð Bjarmason, Sebastian Schuberth,
	Raphael Stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy

Jeff King <peff@peff.net> writes:

> Most of the include examples use "foo.inc", but some use
> "foo". Since the string of examples are meant to show
> variations and how they differ, it's a good idea to change
> only one thing at a time. The filename differences are not
> relevant to what we're trying to show.
>
> Signed-off-by: Jeff King <peff@peff.net>
> ---
> And yes, I just invented the word consistify. "make X consistent" hides
> the meaning at the end, and I couldn't think of a more concise verb.

Yeah, "remove unnecessary variants from X" is the best I could do.
In any case, all four looked sensible.

Thanks.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/4] docs/config: clarify include/includeIf relationship
  2017-05-11  9:10                   ` [PATCH 1/4] docs/config: clarify include/includeIf relationship Jeff King
@ 2017-05-11 16:47                     ` Ramsay Jones
  2017-05-12  9:28                       ` Jeff King
  0 siblings, 1 reply; 22+ messages in thread
From: Ramsay Jones @ 2017-05-11 16:47 UTC (permalink / raw)
  To: Jeff King, Ævar Arnfjörð Bjarmason
  Cc: Sebastian Schuberth, Raphael Stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy



On 11/05/17 10:10, Jeff King wrote:
> 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

s/you include/you to include/

ATB,
Ramsay Jones

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/4] docs/config: clarify include/includeIf relationship
  2017-05-11 16:47                     ` Ramsay Jones
@ 2017-05-12  9:28                       ` Jeff King
  0 siblings, 0 replies; 22+ messages in thread
From: Jeff King @ 2017-05-12  9:28 UTC (permalink / raw)
  To: Ramsay Jones
  Cc: Ævar Arnfjörð Bjarmason, Sebastian Schuberth,
	Raphael Stolt, Git Mailing List,
	Nguyễn Thái Ngọc Duy

On Thu, May 11, 2017 at 05:47:28PM +0100, Ramsay Jones wrote:

> > 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
> 
> s/you include/you to include/

Oof, yeah. Too many revisions, not enough proofreading. I don't think
these otherwise need re-rolled, so hopefully Junio can just mark it up.

Thanks.

-Peff

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2017-05-12  9:31 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-10 17:00 Possible bug in includeIf / conditional includes raphael.stolt
2017-05-10 18:58 ` Sebastian Schuberth
2017-05-10 19:48   ` Ævar Arnfjörð Bjarmason
2017-05-10 21:21     ` Raphael Stolt
2017-05-10 21:37       ` Raphael Stolt
2017-05-11  6:26     ` Jeff King
2017-05-11  6:29       ` Jeff King
2017-05-11  7:19         ` Ævar Arnfjörð Bjarmason
2017-05-11  7:42           ` Jeff King
2017-05-11  7:49             ` Ævar Arnfjörð Bjarmason
2017-05-11  7:54               ` Jeff King
2017-05-11  9:09                 ` [PATCH 0/4] doc improvements for config includes Jeff King
2017-05-11  9:10                   ` [PATCH 1/4] docs/config: clarify include/includeIf relationship Jeff King
2017-05-11 16:47                     ` Ramsay Jones
2017-05-12  9:28                       ` Jeff King
2017-05-11  9:11                   ` [PATCH 2/4] docs/config: give a relative includeIf example Jeff King
2017-05-11  9:13                   ` [PATCH 3/4] docs/config: avoid the term "expand" for includes Jeff King
2017-05-11  9:14                   ` [PATCH 4/4] docs/config: consistify include.path examples Jeff King
2017-05-11  9:41                     ` Junio C Hamano
2017-05-11  9:29                   ` [PATCH 0/4] doc improvements for config includes Ævar Arnfjörð Bjarmason
2017-05-11  7:54             ` Possible bug in includeIf / conditional includes Junio C Hamano
2017-05-11  7:56               ` Jeff King

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).