Nguyen Thai Ngoc Duy <pclouds@xxxxxxxxx> writes: > On Wed, Sep 26, 2012 at 9:07 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: >> Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> writes: >> >>> Both "git log" and "git reflog show" recognize this option. >>> >>> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> >>> --- >> >> How well does it interact with --grep and/or --all-match? > > Good point. It currently works like and operator. But people might > expect to combine them in different ways. The current commit_match() runs grep_buffer() on commit->buffer. It probably makes sense to instead notice from opt that we are running log with "-g", prepare a temporary strbuf and add in the reflog message to the string in commit->buffer, and run grep_buffer() on that temporary strbuf on it. I personally think it is sufficient ot just reuse --grep on concatenation of commit->buffer with "Reflog message: checkout: moving from as/check-ignore to pu". If you really want to go fancier, you could add --grep-reflog option that behaves like the existing --author and --committer options to add "header match" elements to the grep expression, splice a fake "reflog " header to the string copied from commit->buffer, e.g. prepare something like this in your temporary strbuf: tree b4429f218782165faf101ccb0f4ba1cdd6d1d349 parent de5cd03876e546d6d264ab28a01daa978f3eae78 parent b378e5a25658e07e6d0c0f4db79e87cb21de5489 author Junio C Hamano <gitster@xxxxxxxxx> 1348616180 -0700 committer Junio C Hamano <gitster@xxxxxxxxx> 1348616180 -0700 reflog checkout: moving from as/check-ignore to pu Merge branch 'jk/lua-hackery' into pu * jk/lua-hackery: Minimum compilation fixup Makefile: make "lua" a bit more configurable add a "lua" pretty format add basic lua infrastructure pretty: make some commit-parsing helpers more public that way, you can take advantage of the existing logic used for the author/committer match that matches only in the commit object header. Again, I personally doubt the fancier option is worth it, but the starting point may look something like this. revision.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git c/revision.c w/revision.c index ae12e11..b0f4d5b 100644 --- c/revision.c +++ w/revision.c @@ -2212,8 +2212,20 @@ static int commit_match(struct commit *commit, struct rev_info *opt) { if (!opt->grep_filter.pattern_list && !opt->grep_filter.header_list) return 1; - return grep_buffer(&opt->grep_filter, - commit->buffer, strlen(commit->buffer)); + + if (opt->reflog_info) { + int retval; + struct strbuf buf = STRBUF_INIT; + strbuf_addf(&buf, "reflog %s\n", opt->reflog_info->message); + strbuf_addstr(&buf, commit->buffer); + retval = grep_buffer(&opt->grep_filter, + buf.buf, buf.len); + strbuf_release(&buf); + return retval; + } else { + return grep_buffer(&opt->grep_filter, + commit->buffer, strlen(commit->buffer)); + } } static inline int want_ancestry(struct rev_info *revs) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html