By default, reflog won't show committer date and for some cases won't show commit log either. It will be helpful to show them all by passing a more complicated pretty formatter to `git reflog` like this: $ git reflog show \ --pretty="%Cred%h%Creset %gd: %gs%n >> %Cblue%ci (%cr)%Creset: %s" It will be nice to add this pretty formatter automatically when run `git reflog` in verbose mode. And in order to support verbose mode, add new flag "verbose" in struct rev_info. Signed-off-by: Jiang Xin <worldhello.net@xxxxxxxxx> --- For example: $ git reflog show -3 master 727a4 master@{0}: merge kernel/master: Fast-forward edca41 master@{1}: merge kernel/master: Fast-forward 5e49f master@{2}: merge kernel/master: Fast-forward $ git reflog show -3 -v master 727a4 master@{0}: merge kernel/master: Fast-forward Wed May 29 15:21:47 2013 -0700 (by Junio C Hamano, at 4 days ago) edca41 master@{1}: merge kernel/master: Fast-forward Fri May 24 11:34:46 2013 -0700 (by Junio C Hamano, at 9 days ago) 5e49f master@{2}: merge kernel/master: Fast-forward Tue May 21 09:33:24 2013 -0700 (by Junio C Hamano, at 12 days ago) $ git reflog show -3 -v -v master 727a4 master@{0}: merge kernel/master: Fast-forward Wed May 29 15:21:47 2013 -0700 (by Junio C Hamano, at 4 days ago) Sync with maint edca41 master@{1}: merge kernel/master: Fast-forward Fri May 24 11:34:46 2013 -0700 (by Junio C Hamano, at 9 days ago) Git 1.8.3 5e49f master@{2}: merge kernel/master: Fast-forward Tue May 21 09:33:24 2013 -0700 (by Junio C Hamano, at 12 days ago) remote-hg: fix order of configuration comments builtin/log.c | 15 +++++++++++++++ revision.c | 1 + revision.h | 1 + 3 files changed, 17 insertions(+) diff --git a/builtin/log.c b/builtin/log.c index dd3f10..d611b 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -615,6 +615,21 @@ int cmd_log_reflog(int argc, const char **argv, const char *prefix) rev.use_terminator = 1; rev.always_show_header = 1; cmd_log_init_finish(argc, argv, prefix, &rev, &opt); + if (rev.verbose && !rev.pretty_given) { + struct strbuf formatter = STRBUF_INIT; + rev.verbose_header = 1; + rev.pretty_given = 1; + strbuf_addf(&formatter, "%s%%h%s %%gd: %%gs%%n", + diff_get_color_opt(&rev.diffopt, DIFF_COMMIT), + diff_get_color_opt(&rev.diffopt, DIFF_RESET)); + strbuf_addf(&formatter, " %s%%cd%s (by %%cn, at %%cr)", + diff_get_color_opt(&rev.diffopt, DIFF_METAINFO), + diff_get_color_opt(&rev.diffopt, DIFF_RESET)); + if (rev.verbose > 1) + strbuf_addstr(&formatter, "%n %s"); + get_commit_format(formatter.buf, &rev); + strbuf_release(&formatter); + } return cmd_log_walk(&rev); } diff --git a/revision.c b/revision.c index 518cd..f7483 100644 --- a/revision.c +++ b/revision.c @@ -1514,6 +1514,7 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg revs->combine_merges = 1; } else if (!strcmp(arg, "-v")) { revs->verbose_header = 1; + revs->verbose++; } else if (!strcmp(arg, "--pretty")) { revs->verbose_header = 1; revs->pretty_given = 1; diff --git a/revision.h b/revision.h index a313a..dc4d8 100644 --- a/revision.h +++ b/revision.h @@ -119,6 +119,7 @@ struct rev_info { show_notes_given:1, show_signature:1, pretty_given:1, + verbose:3, abbrev_commit:1, abbrev_commit_given:1, use_terminator:1, -- 1.8.3.490.gfd67a58.dirty -- 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