diff options
Diffstat (limited to 'builtin-log.c')
-rw-r--r-- | builtin-log.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/builtin-log.c b/builtin-log.c index 982d871887..af2de54371 100644 --- a/builtin-log.c +++ b/builtin-log.c @@ -11,6 +11,7 @@ #include "log-tree.h" #include "builtin.h" #include "tag.h" +#include "reflog-walk.h" static int default_show_root = 1; @@ -181,6 +182,37 @@ int cmd_show(int argc, const char **argv, const char *prefix) return ret; } +/* + * This is equivalent to "git log -g --abbrev-commit --pretty=oneline" + */ +int cmd_log_reflog(int argc, const char **argv, const char *prefix) +{ + struct rev_info rev; + + git_config(git_log_config); + init_revisions(&rev, prefix); + init_reflog_walk(&rev.reflog_info); + rev.abbrev_commit = 1; + rev.verbose_header = 1; + cmd_log_init(argc, argv, prefix, &rev); + + /* + * This means that we override whatever commit format the user gave + * on the cmd line. Sad, but cmd_log_init() currently doesn't + * allow us to set a different default. + */ + rev.commit_format = CMIT_FMT_ONELINE; + rev.always_show_header = 1; + + /* + * We get called through "git reflog", so unlike the other log + * routines, we need to set up our pager manually.. + */ + setup_pager(); + + return cmd_log_walk(&rev); +} + int cmd_log(int argc, const char **argv, const char *prefix) { struct rev_info rev; |