git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3 01/10] wildmatch: fix "**" special case

From
Duy Nguyen <pclouds@gmail.com>
Date
Jan 25, 2013, 01:46 UTC
Message-ID
<CACsJy8Bq8aQ69twWtwHyNzez2OwTN1wHxqHwb_AM-Qo4TUuv8Q@mail.gmail.com>
In-Reply-To
<7v1udacugj.fsf@alter.siamese.dyndns.org>
On Fri, Jan 25, 2013 at 1:22 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 12 quoted lines
> Duy Nguyen <pclouds@gmail.com> writes:
>
>> I don't think we need to support two different sets of wildcards in
>> the long run. I'm thinking of adding ":(glob)" with WM_PATHNAME.
>> Pathspec without :(glob) still uses the current wildcards (i.e. no
>> FNM_PATHNAME). At some point, like 2.0, we either switch the behavior
>> of patterns-without-:(glob) to WM_PATHNAME, or just disable wildcards
>> when :(glob) is not present.
>
> Yeah, I think that is sensible.
>
> I am meaning to merge your retire-fnmatch topic to 'master'.
I thought you wanted it to stay in 'next' longer :-)
Show 15 quoted lines
> What should the Release Notes say for the upcoming release?
>
>     You can build with USE_WILDMATCH=YesPlease to use a replacement
>     implementation of pattern matching logic used for pathname-like
>     things, e.g.  refnames and paths in the repository.  The new
>     implementation is not expected change the existing behaviour of
>     Git at all, except for "git for-each-ref" where you can now say
>     "refs/**/master" and match with both refs/heads/master and
>     refs/remotes/origin/master.  In future versions of Git, we plan
>     to use this new implementation in wider places (e.g. "git log
>     '**/t*.sh'" may find commits that touch a shell script whose
>     name begins with "t" at any level), but we are not there yet.
>     By building with USE_WILDMATCH, using the resulting Git daily
>     and reporting when you find breakages, you can help us get
>     closer to that goal.

That looks ok. You may want to mention that "**" syntax is enabled in .gitignore and .gitattributes as well (even without USE_WILDMATCH). We could even stop the behavior change in for-each-ref (FNM_PATHNAME in general) but I guess because it's a nice regression, nobody would complain.

-- 
Duy
Previous: Junio C HamanoNext: Junio C Hamano
Message 9 of 19 in “fnmatch replacement”
  1. 00/10 fnmatch replacementNguyễn Thái Ngọc Duy, Jan 1, 2013
  2. 01/10 wildmatch: fix "**" special caseNguyễn Thái Ngọc Duy, Jan 1, 2013
  3. Junio C HamanoJan 22, 2013
  4. Junio C HamanoJan 22, 2013
  5. Duy NguyenJan 23, 2013
  6. Junio C HamanoJan 24, 2013
  7. Duy NguyenJan 24, 2013
  8. Junio C HamanoJan 24, 2013
  9. Duy NguyenJan 25, 2013
  10. Junio C HamanoJan 25, 2013
  11. 02/10 compat/fnmatch: respect NO_FNMATCH* even on glibcNguyễn Thái Ngọc Duy, Jan 1, 2013
  12. 03/10 wildmatch: replace variable 'special' with better named onesNguyễn Thái Ngọc Duy, Jan 1, 2013
  13. 04/10 wildmatch: rename constants and update prototypeNguyễn Thái Ngọc Duy, Jan 1, 2013
  14. 05/10 wildmatch: make dowild() take arbitrary flagsNguyễn Thái Ngọc Duy, Jan 1, 2013
  15. 06/10 wildmatch: support "no FNM_PATHNAME" modeNguyễn Thái Ngọc Duy, Jan 1, 2013
  16. 07/10 test-wildmatch: add "perf" command to compare wildmatch and fnmatchNguyễn Thái Ngọc Duy, Jan 1, 2013
  17. 08/10 wildmatch: make a special case for "*/" with FNM_PATHNAMENguyễn Thái Ngọc Duy, Jan 1, 2013
  18. 09/10 wildmatch: advance faster in <asterisk> + <literal> patternsNguyễn Thái Ngọc Duy, Jan 1, 2013
  19. 10/10 Makefile: add USE_WILDMATCH to use wildmatch as fnmatchNguyễn Thái Ngọc Duy, Jan 1, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.