There are two ways:
- "git log" can itself do a lot of filtering. Both on date, on revisions,
on "modifies files/directories X, Y and Z" _and_ on strings.
See "man git-rev-list" for more (it doesn't apply to just "git log", it
applies to just about any revision listing, including gitk etc)
For example,
git log [--author=pattern] [--committer=pattern] [--grep=pattern]
will likely do exactly what you want. You can do
git log --grep="Signed-off-by:.*akpm"
on the kernel archive to see which ones were signed off by Andrew.
So the above works, and catches *most* uses. But it has problems if you
want to do something fancier (and I think that includes something as
simple as doing a case-insensitive grep). So the other approach is:
- The hacky way: use "git log --pretty -z", and GNU grep -z:
git log --pretty -z |
grep -i -z Signed-off-by:.*junkio |
tr '\0' '\n'
which allows you to do anything you want with grep (or other unix tools
that take zero-terminated output).
Git definitely was designed to do it. The "-z" option in particular is
very much designed for any generic UNIX scripting, but the *easy* cases
git does internally.
Linus
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html