[PATCH] Add "git grep" helper
Very convenient shorthand for git-ls-files [file-patterns] | xargs grep <pattern> which I tend to do all the time. Yes, it's trivial, but it's really nice. I can do git grep '\<some_variable\>' arch/i386 include/asm-i386 and it does exactly what you'd think it does. And since it just uses the normal git-ls-files file patterns, you can do things like git grep something 'include/*.h' and it will search all header files under the include/ subdirectory. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:

committed by
Junio C Hamano

parent
ba8a4970c7
commit
f22cc3fcbf
2
Makefile
2
Makefile
@ -76,7 +76,7 @@ SCRIPT_SH = \
|
|||||||
git-tag.sh git-verify-tag.sh git-whatchanged.sh git.sh \
|
git-tag.sh git-verify-tag.sh git-whatchanged.sh git.sh \
|
||||||
git-applymbox.sh git-applypatch.sh \
|
git-applymbox.sh git-applypatch.sh \
|
||||||
git-merge.sh git-merge-stupid.sh git-merge-octopus.sh \
|
git-merge.sh git-merge-stupid.sh git-merge-octopus.sh \
|
||||||
git-merge-resolve.sh
|
git-merge-resolve.sh git-grep.sh
|
||||||
|
|
||||||
SCRIPT_PERL = \
|
SCRIPT_PERL = \
|
||||||
git-archimport.perl git-cvsimport.perl git-relink.perl \
|
git-archimport.perl git-cvsimport.perl git-relink.perl \
|
||||||
|
20
git-grep.sh
Executable file
20
git-grep.sh
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
flags=
|
||||||
|
while :; do
|
||||||
|
pattern="$1"
|
||||||
|
case "$pattern" in
|
||||||
|
-i|-I|-a|-E|-H|-h|-l)
|
||||||
|
flags="$flags $pattern"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-*)
|
||||||
|
echo "unknown flag $pattern" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
git-ls-files -z "$@" | xargs -0 grep $flags "$pattern"
|
Reference in New Issue
Block a user