Code

builtin-grep: use external grep when we can take advantage of it
authorLinus Torvalds <torvalds@osdl.org>
Mon, 15 May 2006 03:49:15 +0000 (20:49 -0700)
committerJunio C Hamano <junkio@cox.net>
Mon, 15 May 2006 05:33:24 +0000 (22:33 -0700)
commit1e2398d7fad308dcc6019709244b40303b51b54d
tree50ca170889b4b033782e076fce7539ea2f7cddbb
parent07ea91d84f3c7bb075d4716ee40096e3b12a4c86
builtin-grep: use external grep when we can take advantage of it

It's not perfect, but it gets the "git grep some-random-string" down to
the good old half-a-second range for the kernel.

It should convert more of the argument flags for "grep", that should be
trivial to expand (I did a few just as an example). It should also bother
to try to return the right "hit" value (which it doesn't, right now - the
code is kind of there, but I didn't actually bother to do it _right_).

Also, right now it _just_ limits by number of arguments, but it should
also strictly speaking limit by total argument size (ie add up the length
of the filenames, and do the "exec_grep()" flush call if it's bigger than
some random value like 32kB).

But I think that it's _conceptually_ doing all the right things, and it
seems to work. So maybe somebody else can do some of the final polish.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-grep.c