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

Re: Add "git grep" helper

From
Linus Torvalds <torvalds@osdl.org>
Date
Sep 12, 2005, 22:12 UTC
Message-ID
<Pine.LNX.4.58.0509121500400.3266@g5.osdl.org>
In-Reply-To
<7vbr2y7yfd.fsf@assigned-by-dhcp.cox.net>
On Mon, 12 Sep 2005, Junio C Hamano wrote:
Show 5 quoted lines
> 
> I do not much care about other grep flags but I think you forgot
> to special case '-e', so what is in the "master" branch has one
> extra commit on top of it for that (it does not seem to have
> percolated down yet).

Actually, the more I think about it, the more I think Morten was right, and the git-grep case statement should just put all flags in "$flags", and any git-ls-files flags can be handled specially before.

We also need special casing for grep flags that take an argument. So the end result might be something like the following..

  ...
  case "$pattern" in
    # git-ls-file specific flags
    --others|--exclude=*|--exclude-from=*|--exclude-per-directory=*)
	git_flags="$git_flags $pattern"
	shift
	;;
    # grep flags with an argument
    -B|-C|-m)
	flags="$flags $pattern $2"
	shift
	shift
	;;
    # grep 'pattern' argument
    -e)
	pattern="$2"
	shift
	break
	;;
    # We assume everything else is a regular grep pattern
    -*)
	flags="$flags $pattern"
	shift
	;;
  ...

instead. And it's entirely possible that we'd never want to even bother with things like --others and --exclude* at all.

		Linus
Previous: Junio C HamanoNext: Linus Torvalds
Message 5 of 13 in “Add "git grep" helper”
  1. Linus TorvaldsSep 12, 2005
  2. Morten WelinderSep 12, 2005
  3. Linus TorvaldsSep 12, 2005
  4. Junio C HamanoSep 12, 2005
  5. Linus TorvaldsSep 12, 2005
  6. Improve "git grep" flags handlingLinus Torvalds, Sep 12, 2005
  7. Junio C HamanoSep 12, 2005
  8. Linus TorvaldsSep 12, 2005
  9. Junio C HamanoSep 12, 2005
  10. Linus TorvaldsSep 12, 2005
  11. Junio C HamanoSep 12, 2005
  12. Improve "git grep" flags handlingJunio C Hamano, Sep 13, 2005
  13. Junio C HamanoSep 12, 2005

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.