Re: [PATCH] revision: add --reflog-message=pattern to grep reflog messages

2012-09-26 Thread Junio C Hamano
Nguyễn Thái Ngọc Duy  pclo...@gmail.com writes:

 Both git log and git reflog show recognize this option.

 Signed-off-by: Nguyễn Thái Ngọc Duy pclo...@gmail.com
 ---

How well does it interact with --grep and/or --all-match?

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] revision: add --reflog-message=pattern to grep reflog messages

2012-09-26 Thread Nguyen Thai Ngoc Duy
On Wed, Sep 26, 2012 at 9:07 PM, Junio C Hamano gits...@pobox.com wrote:
 Nguyễn Thái Ngọc Duy  pclo...@gmail.com writes:

 Both git log and git reflog show recognize this option.

 Signed-off-by: Nguyễn Thái Ngọc Duy pclo...@gmail.com
 ---

 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.
-- 
Duy
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] revision: add --reflog-message=pattern to grep reflog messages

2012-09-26 Thread Junio C Hamano
Nguyen Thai Ngoc Duy pclo...@gmail.com writes:

 On Wed, Sep 26, 2012 at 9:07 PM, Junio C Hamano gits...@pobox.com wrote:
 Nguyễn Thái Ngọc Duy  pclo...@gmail.com writes:

 Both git log and git reflog show recognize this option.

 Signed-off-by: Nguyễn Thái Ngọc Duy pclo...@gmail.com
 ---

 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 gits...@pobox.com 1348616180 -0700
committer Junio C Hamano gits...@pobox.com 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html