git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: "Sebastian Schuberth" <sschuberth@gmail.com>,
	raphael.stolt@gmail.com, "Git Mailing List" <git@vger.kernel.org>,
	"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: Re: Possible bug in includeIf / conditional includes
Date: Thu, 11 May 2017 02:26:16 -0400	[thread overview]
Message-ID: <20170511062616.f7rg6f5cgrqeh7gf@sigill.intra.peff.net> (raw)
In-Reply-To: <CACBZZX7CgeW1OK+g9Mbir62MMaCx4sHFZngUuWz_H241Sb355g@mail.gmail.com>

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

  parent reply	other threads:[~2017-05-11  6:26 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170511062616.f7rg6f5cgrqeh7gf@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=pclouds@gmail.com \
    --cc=raphael.stolt@gmail.com \
    --cc=sschuberth@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).