git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: "Jakub Narębski" <jnareb@gmail.com>
Cc: Laszlo Ersek <lersek@redhat.com>,
	public git mailing list <git@vger.kernel.org>
Subject: Re: appending a pattern to the default "diff.cpp.xfuncname"
Date: Wed, 3 Aug 2016 14:40:29 -0400	[thread overview]
Message-ID: <20160803184029.kg7xdcb5s7znxyjq@sigill.intra.peff.net> (raw)
In-Reply-To: <8c4e96b9-165f-5168-d220-6a1548ff83c7@gmail.com>

On Wed, Aug 03, 2016 at 08:34:28PM +0200, Jakub Narębski wrote:

> > Unfortunately, no, the config system has no notion of "append to this
> > value". 
> 
> And I think adding such capability would not be easy.  Well, perhaps
> we could support '+=' in addition to '='?

We could, but it would be an incompatible syntactic change, which we've
so far managed to avoid.

> >         So you are stuck with extracting the builtin value (which
> > annoyingly, you cannot even get without looking at the source code!),
> > and repeating it in your config file.
> 
> I wonder if `git var -l` could provide all default values :-P

I had a similar thought, but it's quite difficult because of the way
that default values are structured in git. Most code uses initialization
of C variables (including structs) to set up default values, and then
overrides them if it sees relevant config.

So there is no central code to ask "what is the value of X if I don't
provide any config"? It literally requires dumping a bunch of variables.

One thing we could do is move all of those defaults into an "internal"
config that is baked into the executable, and then parse that at the
lowest-priority level of config. And then "git config --list
--show-origin" could presumably just dump it.

But that would mean parsing it at run-time in every program (which is
probably not _that_ much overhead, but does feel wrong). I'd also
suspect there are a few cases whose defaults are expressed in code,
rather than as single variable assignments, and couldn't be represented
as config at all.

-Peff

      reply	other threads:[~2016-08-03 18:47 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-03 10:16 appending a pattern to the default "diff.cpp.xfuncname" Laszlo Ersek
2016-08-03 18:02 ` Jeff King
2016-08-03 18:12   ` Laszlo Ersek
2016-08-03 18:34   ` Jakub Narębski
2016-08-03 18:40     ` 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

  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=20160803184029.kg7xdcb5s7znxyjq@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=jnareb@gmail.com \
    --cc=lersek@redhat.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).