git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
	sschuberth@gmail.com
Subject: Re: [PATCH v2 0/2] Config conditional include
Date: Tue, 28 Jun 2016 16:28:09 -0400	[thread overview]
Message-ID: <20160628202809.GA21002@sigill.intra.peff.net> (raw)
In-Reply-To: <20160628172641.26381-1-pclouds@gmail.com>

On Tue, Jun 28, 2016 at 07:26:39PM +0200, Nguyễn Thái Ngọc Duy wrote:

> There's a surprise about core.ignorecase. We are matching paths, so we
> should match case-insensitively if core.ignorecase tells us so. And it
> gets a bit tricky if core.ignorecase is defined in the same config
> file. I don't think we have ever told the user that keys are processed
> from top down. We do now.

Hrm. I'm not excited about introducing ordering issues into the config
parsing. But I think it's actually even more complicated than that.

core.ignorecase is generally about the working tree, not the git
repository directory, which may reside on another filesystem entirely
(though I would not be surprised if we've blurred that line already).

I wonder if it would be that bad to just punt on the issue, and say that
these include-match globs are always case-insensitive, or something.
True, that does not allow one to distinguish between config for "foo"
and "Foo" directories, but I find it unlikely anybody would ever want
to. And if we define it that way from day one, then nobody expects it to
work.

> It makes me wonder if we should allow users the option to match case
> insensitively regardless of filesystem too. Something close to
> pathspec magic. But that probably has little use in real world for a
> lot more work.

Yeah, if we had a builtin syntax for "add these options to the
wildmatch", it wouldn't be so bad, but I think we'd be inventing that
syntax.

> The '/' vs '\\' battle on Windows, I'll leave it to Windows guys again.

Oof. Me too. :)

> To leave room for future expansion, perhaps we should declare that ':'
> can't appear in the pattern, so we can add more prefix later, and even
> stack them, e.g. "regexp:gitdir:<pattern>". The prefix can't be one char
> long. That should be enough for windows to specify full path
> including the drive letter.

It seems unnecessarily restrictive to place rules about what can go in
the pattern provided by the user, when we can easily restrict the
characters on the keyword side. For example "gitdir/regexp:<pattern>" is
a natural extension of "gitdir:<pattern>", and is backwards compatible
as long as we use something besides ":" for the option separator.

-Peff

  parent reply	other threads:[~2016-06-28 20:41 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-26  7:06 [PATCH] config: add conditional include Nguyễn Thái Ngọc Duy
2016-06-26 18:27 ` Jeff King
2016-06-27 16:14   ` Duy Nguyen
2016-06-27 16:20     ` Jeff King
2016-06-27 16:32       ` Duy Nguyen
2016-06-27 16:35         ` Jeff King
2016-06-28 17:26 ` [PATCH v2 0/2] Config " Nguyễn Thái Ngọc Duy
2016-06-28 17:26   ` [PATCH v2 1/2] add skip_prefix_mem helper Nguyễn Thái Ngọc Duy
2016-06-28 17:26   ` [PATCH v2 2/2] config: add conditional include Nguyễn Thái Ngọc Duy
2016-06-28 20:49     ` Jeff King
2016-06-29  4:06       ` Duy Nguyen
2016-06-28 23:11     ` Eric Sunshine
2016-07-12 16:42     ` [PATCH v3] " Nguyễn Thái Ngọc Duy
2016-07-13  7:21       ` Matthieu Moy
2016-07-13  7:26         ` Jeff King
2016-07-13 12:48           ` Matthieu Moy
2016-07-13 15:57         ` Duy Nguyen
2016-07-14 15:33       ` [PATCH v4] " Nguyễn Thái Ngọc Duy
2016-07-14 15:53         ` Johannes Schindelin
2016-07-14 16:13           ` Duy Nguyen
2016-07-16 13:30             ` Johannes Schindelin
2016-07-16 14:48               ` Duy Nguyen
2016-07-16 15:08               ` Jeff King
2016-07-16 16:36                 ` Johannes Schindelin
2016-07-16 16:47                   ` Jeff King
2016-07-17  8:15                     ` Johannes Schindelin
2016-07-20 13:31                       ` Jeff King
2016-07-20 22:07                         ` Junio C Hamano
2016-07-20 16:39                     ` Jakub Narębski
2016-08-13  8:40         ` Duy Nguyen
2016-08-19 13:54           ` Jeff King
2016-08-20 21:08             ` Jakub Narębski
2016-08-22 12:43               ` Duy Nguyen
2016-08-22 12:59                 ` Matthieu Moy
2016-08-22 13:09                   ` Duy Nguyen
2016-08-22 13:22                     ` Matthieu Moy
2016-08-22 13:32                       ` Duy Nguyen
2016-08-23 13:42                         ` Johannes Schindelin
2016-08-24  9:37                           ` Duy Nguyen
2016-08-24 12:44                             ` Jakub Narębski
2016-08-24 14:17                               ` Jeff King
2016-06-28 20:28   ` Jeff King [this message]
2016-06-28 20:51     ` [PATCH v2 0/2] Config " Matthieu Moy
2016-06-28 21:03       ` Jeff King
2016-06-29  4:09     ` Duy Nguyen
2016-06-28 22:11   ` Junio C Hamano

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=20160628202809.GA21002@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=pclouds@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).