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

Re: [RFC] Making ce_path_match() more useful by accepting globs

From
Alex Riesen <raa.lkml@gmail.com>
Date
Nov 26, 2007, 19:38 UTC
Message-ID
<20071126193813.GB3675@steel.home>
In-Reply-To
<7vlk8lj1b7.fsf@gitster.siamese.dyndns.org>
Junio C Hamano, Mon, Nov 26, 2007 01:30:20 +0100:
Show 18 quoted lines
> Alex Riesen <raa.lkml@gmail.com> writes:
> 
> > Junio C Hamano, Sun, Nov 25, 2007 19:03:12 +0100:
> >> Currently ce_path_match() only uses "the leading directory" match, and
> >> does not understand file globs.  These do not work:
> >> 
> >>    git diff-files 't/*.sh'
> >>    git diff-index HEAD 'xdiff/*.c'
> >>    git update-index -g 'Documentation/howto/*.txt'
> >
> > How should my scripts handle files with "*" in names?
> 
> We DO NOT CARE.
> 
> Why?
> 
> How would you handle such files from the command line session without
> git?  "ls such-*-a-file" will also show such-silly-a-file as well.
It will break existing setups. Something like
    #!/bin/bash
    git diff-files --quiet -- "$@" || do_something
will behave differently
> IOW, the user is shooting in the foot --- and at that point I am not all
> that interested in helping him.
What with? What's wrong with a name like "M*A*S*H" in your personal IMDB?
Show 10 quoted lines
> Having said that, I would think that quoting the meta from fnmatch(3)
> like this:
> 
> 	git ls-files 'such-\*-a-file'
> 
> would work fine, just like
> 
> 	ls such-\*-a-file
> 
> would.
An existing system will still be broken.
Show 7 quoted lines
> If "ls such-*-a-file" reports only one file,
> 
> 	git ls-files 'such-*-a-file'
> 
> would also report that file as well.
> 
> So in practice I do not see a problem.

I think I do. There is NO way to pass the filenames to git plumbing (only the diff-, or is git update-index --stdin -z also subject to glob expansion?) without being sure they are exactly they were on filesystem. Quoting is just PITA for scripting.

Previous: Junio C Hamano
Message 5 of 5 in “[RFC] Making ce_path_match() more useful by accepting globs”
  1. Junio C HamanoNov 25, 2007
  2. Alex RiesenNov 26, 2007
  3. Junio C HamanoNov 26, 2007
  4. Junio C HamanoNov 26, 2007
  5. Alex RiesenNov 26, 2007

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.