All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Duy Nguyen <pclouds@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH v3 01/10] wildmatch: fix "**" special case
Date: Wed, 23 Jan 2013 20:49:36 -0800	[thread overview]
Message-ID: <7vwqv3dw2n.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <CACsJy8DiVy7tcG_t2JENKoPSFWV24Tneh4q=upPPJML4VESMag@mail.gmail.com> (Duy Nguyen's message of "Wed, 23 Jan 2013 08:04:50 +0700")

Duy Nguyen <pclouds@gmail.com> writes:

> If we do that, we need to do the same in tree_entry_interesting(). In
> other words, pathspec learns the new glob syntax. It's fine for an
> experimental flag like USE_WILDMATCH. But after fnmatch is replaced by
> wildmatch unconditionally (thus USE_WILDMATCH becomes obsolete), then
> what? Should people who expects new syntax with USE_WILDMATCH continue
> to have new syntax? How does a user know which syntax may be used in
> his friend's "git" binary?

Good point.

> On a related subject, I've been meaning to write a mail about the
> other use of patterns in git (e.g. in git-branch, git-tag,
> git-apply...) but never got around to. Some use without FNM_PATHNAME,
> some do and the document does not go into details about the
> differences. We might want to unify the syntax there too. It'll
> probably break backward compatibility so we can do the same when we
> switch pathspec syntax.

Right now, I think for-each-ref is the only one with FNM_PATHNAME.
With the experimental USE_WILDMATCH, "for-each-ref refs/**/master"
will give us what is naturally expected.  With a working wildmatch,
I think it probably makes sense to globally enable FNM_PATHNAME;
it would probably be nice if we could do so at Git 2.0 version bump
boundary, but I suspect we are not ready yet (as you pointed out,
there are still codepaths that need to be adjusted).

> The only problem I see is, without the version string, there's no way
> to know if "**" is supported. Old git versions will happily take "**"
> and interpret as "*". When you advise someone to use "**" you might
> need to add "check if you have this version of git". This problem does
> not exist with pathspec magic like :(glob)

OK, so what do we want to do when we do the real "USE_WILDMATCH"
that is not the current experimental curiosity?  Use ":(wild)" or
something?

  reply	other threads:[~2013-01-24  4:50 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-01  2:44 [PATCH v3 00/10] fnmatch replacement Nguyễn Thái Ngọc Duy
2013-01-01  2:44 ` [PATCH v3 01/10] wildmatch: fix "**" special case Nguyễn Thái Ngọc Duy
2013-01-22 21:36   ` Junio C Hamano
2013-01-22 22:51     ` Junio C Hamano
2013-01-23  1:04       ` Duy Nguyen
2013-01-24  4:49         ` Junio C Hamano [this message]
2013-01-24  5:51           ` Duy Nguyen
2013-01-24 18:22             ` Junio C Hamano
2013-01-25  1:46               ` Duy Nguyen
2013-01-25  4:55                 ` Junio C Hamano
2013-01-01  2:44 ` [PATCH v3 02/10] compat/fnmatch: respect NO_FNMATCH* even on glibc Nguyễn Thái Ngọc Duy
2013-01-01  2:44 ` [PATCH v3 03/10] wildmatch: replace variable 'special' with better named ones Nguyễn Thái Ngọc Duy
2013-01-01  2:44 ` [PATCH v3 04/10] wildmatch: rename constants and update prototype Nguyễn Thái Ngọc Duy
2013-01-01  2:44 ` [PATCH v3 05/10] wildmatch: make dowild() take arbitrary flags Nguyễn Thái Ngọc Duy
2013-01-01  2:44 ` [PATCH v3 06/10] wildmatch: support "no FNM_PATHNAME" mode Nguyễn Thái Ngọc Duy
2013-01-01  2:44 ` [PATCH v3 07/10] test-wildmatch: add "perf" command to compare wildmatch and fnmatch Nguyễn Thái Ngọc Duy
2013-01-01  2:44 ` [PATCH v3 08/10] wildmatch: make a special case for "*/" with FNM_PATHNAME Nguyễn Thái Ngọc Duy
2013-01-01  2:44 ` [PATCH v3 09/10] wildmatch: advance faster in <asterisk> + <literal> patterns Nguyễn Thái Ngọc Duy
2013-01-01  2:44 ` [PATCH v3 10/10] Makefile: add USE_WILDMATCH to use wildmatch as fnmatch Nguyễn Thái Ngọc Duy

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=7vwqv3dw2n.fsf@alter.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=pclouds@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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.