From: Jeff King <peff@peff.net>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [RFC/PATCH 0/4] config include directives
Date: Fri, 27 Jan 2012 12:34:09 -0500 [thread overview]
Message-ID: <20120127173408.GA3053@sigill.intra.peff.net> (raw)
In-Reply-To: <CACBZZX59sur4_61LkN_sMOvXQ4Jdnt1P8O-UOgm0SooBQpjFdQ@mail.gmail.com>
On Fri, Jan 27, 2012 at 10:51:34AM +0100, Ævar Arnfjörð Bjarmason wrote:
> If you write the function like that it means your patch series just
> works since values encountered later will override earlier ones, but
> have you checked git's code to make sure we don't have anything like:
>
> static int ignore_add_errors_is_set = 0;
> static int add_config(const char *var, const char *value, void *cb)
> {
> if (!ignore_add_errors_is_set &&
> (!strcmp(var, "add.ignoreerrors") ||
> !strcmp(var, "add.ignore-errors"))) {
> ignore_add_errors = git_config_bool(var, value);
> ignore_add_errors_is_set = 1;
> return 0;
> }
> return git_default_config(var, value, cb);
> }
>
> Which would mean that the include config support would be silently
> ignored.
I'm not sure what the issue is. If you write code like this, it will
already ignore the second invocation when it is found later in the same
file, or when it is found in a later file (i.e., in both .git/config and
.gitconfig). So I don't think includes introduce a new problem with
respect to code like this (and no, I didn't check exhaustively, but I
don't recall seeing code like this in git).
A bigger potential problem is multi-key values that form lists. For
example, I cannot use a later "remote.foo.url" line to override an
earlier one; instead, it gets appended to the list of URLs for "foo".
In practice, it's not a problem because the list-like options don't tend
to be found in multiple places. And again, this is not a new problem of
includes, since we already handle multiple files.
Accidentally including the same file twice would cause duplicates for
multi-key values. But I'm going to take Junio's suggestion to avoid
including the same file twice (which also prevents infinite loops due to
cycles).
-Peff
prev parent reply other threads:[~2012-01-27 17:34 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-26 7:35 [RFC/PATCH 0/4] config include directives Jeff King
2012-01-26 7:37 ` [PATCH 1/4] config: add include directive Jeff King
2012-01-26 9:16 ` Johannes Sixt
2012-01-26 16:54 ` Jeff King
2012-01-26 20:42 ` Junio C Hamano
2012-01-26 22:25 ` Jeff King
2012-01-26 22:43 ` Jeff King
2012-01-26 20:58 ` Junio C Hamano
2012-01-26 22:51 ` Jeff King
2012-01-27 5:23 ` Junio C Hamano
2012-01-27 5:55 ` Jeff King
2012-01-27 17:03 ` Jens Lehmann
2012-01-27 0:02 ` Ævar Arnfjörð Bjarmason
2012-01-27 0:32 ` Jeff King
2012-01-27 9:33 ` Ævar Arnfjörð Bjarmason
2012-01-27 5:07 ` Michael Haggerty
2012-01-27 5:54 ` Jeff King
2012-01-26 7:38 ` [PATCH 2/4] config: factor out config file stack management Jeff King
2012-01-26 7:40 ` [PATCH 3/4] config: support parsing config data from buffers Jeff King
2012-01-26 7:42 ` [PATCH 4/4] config: allow including config from repository blobs Jeff King
2012-01-26 9:25 ` Johannes Sixt
2012-01-26 17:22 ` Jeff King
2012-01-27 3:47 ` Nguyen Thai Ngoc Duy
2012-01-27 5:57 ` Jeff King
2012-01-26 21:14 ` Junio C Hamano
2012-01-26 23:00 ` Jeff King
2012-01-27 0:35 ` Junio C Hamano
2012-01-27 0:49 ` Jeff King
2012-01-27 5:30 ` Junio C Hamano
2012-01-27 5:42 ` Jeff King
2012-01-27 7:27 ` Johannes Sixt
2012-01-27 23:10 ` Junio C Hamano
2012-01-27 4:01 ` Nguyen Thai Ngoc Duy
2012-01-27 5:59 ` Jeff King
2012-01-27 9:51 ` [RFC/PATCH 0/4] config include directives Ævar Arnfjörð Bjarmason
2012-01-27 17:34 ` Jeff King [this message]
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120127173408.GA3053@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
/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.
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 NNTP newsgroup(s).