git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: Johannes Sixt <j6t@kdbg.org>
Cc: Boxuan Li <liboxuan@connect.hku.hk>,
	git@vger.kernel.org, gitster@pobox.com
Subject: Re: [RFC PATCH] userdiff: ship built-in driver config file
Date: Wed, 19 Jun 2019 14:39:32 -0400	[thread overview]
Message-ID: <20190619183931.GA28145@sigill.intra.peff.net> (raw)
In-Reply-To: <1da78555-96eb-1206-679b-527911f6af29@kdbg.org>

On Wed, Jun 19, 2019 at 08:30:25AM +0200, Johannes Sixt wrote:

> >> Why place this file in .git? To have per-repository diff drivers, we can
> >> already specify them via 'git config'. This file should be installed in
> >> the system.
> > 
> > I think it _could_ actually just be part of the system /etc/gitconfig,
> > though it is kind of big, and Git has a tendency to parse the config
> > more than necessary. I wonder if would add a noticeable slowdown.
> 
> But /etc/gitconfig would be the wrong place, because it would not be
> updated when a new version ships with new patterns.

I was thinking it would be, but I guess there is a merging problem if
the admin has made their own changes.

> I would suggest to install the file as $prefix/share/git-core/userdiff
> although the name "userdiff" sounds like an accident. How about
> .../filetypes?

Does it need to be specific to userdiff or filetypes? Could this be a
generic fourth level of config: repo, user, system, builtin? We
effectively already have that, except the "builtin" ones are truly baked
into the binary, which means they are not visible. So right now you
cannot say "git config diff.tex.xfuncname" and get any useful
information, even though we clearly are going to respect it.

On the other hand, this would make "git config --list" quite a bit
longer. And any solution that involves putting it into the generic
config paths may suffer from the bloating/slowdown problem I mentioned.

But without that, I have to wonder what problem we are really solving.
Now it's baked into the binary. Later it will be baked into the
distribution, but we still don't want anybody to touch it because their
changes will be overwritten. I guess it's a little easier for somebody
to find .../share/git-core/userdiff and use it as a template than it is
to find the definitions in the source. But it's not exactly easy.

-Peff

  parent reply	other threads:[~2019-06-19 18:39 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-17 16:54 [RFC PATCH] userdiff: ship built-in driver config file Boxuan Li
2019-06-18 20:32 ` Johannes Sixt
2019-06-18 20:50   ` Johannes Sixt
2019-06-19  3:49   ` Jeff King
2019-06-19  6:30     ` Johannes Sixt
2019-06-19 15:02       ` Junio C Hamano
2019-06-19 18:39       ` Jeff King [this message]
2019-06-20  7:41         ` Johannes Sixt
2019-06-19 14:50     ` Junio C Hamano
2019-06-19  3:58 ` Jeff King
2019-06-19 15:32   ` LI, BO XUAN
2019-06-19 18:42     ` 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=20190619183931.GA28145@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=j6t@kdbg.org \
    --cc=liboxuan@connect.hku.hk \
    /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).