Re: git log filtering

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linus Torvalds
Date: Wednesday, February 7, 2007 - 10:12 am

On Wed, 7 Feb 2007, Don Zickus wrote:

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
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
git log filtering, Don Zickus, (Wed Feb 7, 9:41 am)
Re: git log filtering, Jakub Narebski, (Wed Feb 7, 9:55 am)
Re: git log filtering, Uwe , (Wed Feb 7, 10:01 am)
Re: git log filtering, Johannes Schindelin, (Wed Feb 7, 10:12 am)
Re: git log filtering, Linus Torvalds, (Wed Feb 7, 10:12 am)
Re: git log filtering, Johannes Schindelin, (Wed Feb 7, 10:25 am)
Re: git log filtering, Linus Torvalds, (Wed Feb 7, 11:16 am)
Re: git log filtering, Don Zickus, (Wed Feb 7, 11:19 am)
Re: git log filtering, Linus Torvalds, (Wed Feb 7, 11:27 am)
Fix "git log -z" behaviour, Linus Torvalds, (Wed Feb 7, 12:49 pm)
Re: Fix "git log -z" behaviour, Junio C Hamano, (Wed Feb 7, 12:55 pm)
Re: git log filtering, Junio C Hamano, (Wed Feb 7, 1:47 pm)
Re: git log filtering, Linus Torvalds, (Wed Feb 7, 2:03 pm)
Re: git log filtering, Junio C Hamano, (Wed Feb 7, 2:09 pm)
Re: git log filtering, Linus Torvalds, (Wed Feb 7, 2:53 pm)
Re: Fix "git log -z" behaviour, Don Zickus, (Wed Feb 7, 3:53 pm)
Re: Fix "git log -z" behaviour, Linus Torvalds, (Wed Feb 7, 4:05 pm)
Re: git log filtering, Horst H. von Brand, (Wed Feb 7, 6:59 pm)
Re: git log filtering, Jeff King, (Wed Feb 7, 11:16 pm)
Re: git log filtering, Johannes Schindelin, (Thu Feb 8, 11:06 am)
Re: git log filtering, Jeff King, (Thu Feb 8, 3:33 pm)
Re: Fix "git log -z" behaviour, Junio C Hamano, (Thu Feb 8, 3:34 pm)
Re: git log filtering, Johannes Schindelin, (Thu Feb 8, 5:18 pm)
Re: git log filtering, Shawn O. Pearce, (Thu Feb 8, 5:23 pm)
Re: git log filtering, Johannes Schindelin, (Thu Feb 8, 5:45 pm)
Re: git log filtering, Jeff King, (Thu Feb 8, 6:59 pm)
Re: git log filtering, Sergey Vlasov, (Fri Feb 9, 3:15 am)
Re: git log filtering, Johannes Schindelin, (Fri Feb 9, 6:13 am)
Re: git log filtering, Jeff King, (Fri Feb 9, 6:22 am)
Re: git log filtering, Johannes Schindelin, (Fri Feb 9, 8:02 am)
Re: Fix "git log -z" behaviour, Junio C Hamano, (Sat Feb 10, 12:32 am)
Re: Fix "git log -z" behaviour, Junio C Hamano, (Sat Feb 10, 2:36 am)
Re: Fix "git log -z" behaviour, Linus Torvalds, (Sat Feb 10, 10:09 am)
pcre performance, was Re: git log filtering, Johannes Schindelin, (Wed Mar 7, 10:37 am)
Re: pcre performance, was Re: git log filtering, Paolo Bonzini, (Wed Mar 7, 11:03 am)