Message ID | 20190130144744.3248-1-rhi@pengutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | reflog: specify default pretty format in config | expand |
Roland Hieber <rhi@pengutronix.de> writes: > The output of git-reflog is currently only customizable by calling > reflog with --pretty=... or overriding the default "oneline" pretty > format in the configuration. Sounds like a good idea to me, but the patch needs a bit more work: > Documentation/git-reflog.txt | 2 ++ It's nice to refer to the config variable in git-reflog.txt, but you should also document it in some Documentation/config/*.txt file, included from Documentation/config.txt, so that it appears in man git-config. > builtin/log.c | 12 +++++++++--- > 2 files changed, 11 insertions(+), 3 deletions(-) This lacks tests, too (t/*.sh). > --- a/builtin/log.c > +++ b/builtin/log.c > @@ -667,6 +667,7 @@ int cmd_log_reflog(int argc, const char **argv, const char *prefix) > { > struct rev_info rev; > struct setup_revision_opt opt; > + int cfg_have_pretty; > > init_log_defaults(); > git_config(git_log_config, NULL); > @@ -676,11 +677,16 @@ int cmd_log_reflog(int argc, const char **argv, const char *prefix) > rev.verbose_header = 1; > memset(&opt, 0, sizeof(opt)); > opt.def = "HEAD"; > + > + cfg_have_pretty = git_config_get_string_const("reflog.pretty", &fmt_pretty); > cmd_log_init_defaults(&rev); > - rev.abbrev_commit = 1; > - rev.commit_format = CMIT_FMT_ONELINE; > - rev.use_terminator = 1; > + if (cfg_have_pretty != 0) { I'd write just "if (cfg_have_pretty)". > rev.always_show_header = 1; > + > cmd_log_init_finish(argc, argv, prefix, &rev, &opt); Avoid adding unrelated whitespace changes like this one. Regards,
On Wed, Jan 30, 2019 at 07:22:49PM +0100, Matthieu Moy wrote: > Roland Hieber <rhi@pengutronix.de> writes: > > > The output of git-reflog is currently only customizable by calling > > reflog with --pretty=... or overriding the default "oneline" pretty > > format in the configuration. > > Sounds like a good idea to me, but the patch needs a bit more work: Thanks for the review! I'll follow up with a v2. - Roland
diff --git a/Documentation/git-reflog.txt b/Documentation/git-reflog.txt index ff487ff77d..9dccd4bcfd 100644 --- a/Documentation/git-reflog.txt +++ b/Documentation/git-reflog.txt @@ -41,6 +41,8 @@ command-line (or `HEAD`, by default). The reflog covers all recent actions, and in addition the `HEAD` reflog records branch switching. `git reflog show` is an alias for `git log -g --abbrev-commit --pretty=oneline`; see linkgit:git-log[1] for more information. +The config option `reflog.pretty` is used as the default pretty +format if nothing else is specified. The "expire" subcommand prunes older reflog entries. Entries older than `expire` time, or entries older than `expire-unreachable` time diff --git a/builtin/log.c b/builtin/log.c index a479642eb9..0fbd324016 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -667,6 +667,7 @@ int cmd_log_reflog(int argc, const char **argv, const char *prefix) { struct rev_info rev; struct setup_revision_opt opt; + int cfg_have_pretty; init_log_defaults(); git_config(git_log_config, NULL); @@ -676,11 +677,16 @@ int cmd_log_reflog(int argc, const char **argv, const char *prefix) rev.verbose_header = 1; memset(&opt, 0, sizeof(opt)); opt.def = "HEAD"; + + cfg_have_pretty = git_config_get_string_const("reflog.pretty", &fmt_pretty); cmd_log_init_defaults(&rev); - rev.abbrev_commit = 1; - rev.commit_format = CMIT_FMT_ONELINE; - rev.use_terminator = 1; + if (cfg_have_pretty != 0) { + rev.abbrev_commit = 1; + rev.commit_format = CMIT_FMT_ONELINE; + rev.use_terminator = 1; + } rev.always_show_header = 1; + cmd_log_init_finish(argc, argv, prefix, &rev, &opt); return cmd_log_walk(&rev);
The output of git-reflog is currently only customizable by calling reflog with --pretty=... or overriding the default "oneline" pretty format in the configuration. To save typing, teach reflog to fall back to a default format specified in the config option "reflog.pretty" unless a different pretty format is given on the command line. (This is similar to the "format.pretty" option for git-log and git-show.) When this config option is not set, fall back to the old default of --pretty=oneline --abbrev-hash. Signed-off-by: Roland Hieber <rhi@pengutronix.de> --- Documentation/git-reflog.txt | 2 ++ builtin/log.c | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-)