From: Antoine Pelisse <apelisse@xxxxxxxxx> Teach "log.mailmap" configuration variable to turn "--use-mailmap" option on to "git log", "git show" and "git whatchanged". The "--no-use-mailmap" option from the command line can countermand the setting. Signed-off-by: Antoine Pelisse <apelisse@xxxxxxxxx> Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- Documentation/config.txt | 4 ++++ builtin/log.c | 7 +++++++ t/t4203-mailmap.sh | 24 ++++++++++++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/Documentation/config.txt b/Documentation/config.txt index bf8f911..226362a 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -1509,6 +1509,10 @@ log.showroot:: Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which normally hide the root commit will now show it. True by default. +log.mailmap:: + If true, makes linkgit:git-log[1], linkgit:git-show[1], and + linkgit:git-whatchanged[1] assume `--use-mailmap`. + mailmap.file:: The location of an augmenting mailmap file. The default mailmap, located in the root of the repository, is loaded diff --git a/builtin/log.c b/builtin/log.c index d2bd8ce..16e6520 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -31,6 +31,7 @@ static int default_abbrev_commit; static int default_show_root = 1; static int decoration_style; static int decoration_given; +static int use_mailmap_config; static const char *fmt_patch_subject_prefix = "PATCH"; static const char *fmt_pretty; @@ -106,6 +107,7 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix, OPT_END() }; + mailmap = use_mailmap_config; argc = parse_options(argc, argv, prefix, builtin_log_options, builtin_log_usage, PARSE_OPT_KEEP_ARGV0 | PARSE_OPT_KEEP_UNKNOWN | @@ -358,6 +360,11 @@ static int git_log_config(const char *var, const char *value, void *cb) } if (!prefixcmp(var, "color.decorate.")) return parse_decorate_color_config(var, 15, value); + if (!strcmp(var, "log.mailmap")) { + use_mailmap_config = git_config_bool(var, value); + return 0; + } + if (grep_config(var, value, cb) < 0) return -1; return git_diff_ui_config(var, value, cb); diff --git a/t/t4203-mailmap.sh b/t/t4203-mailmap.sh index e16187f..7d4d31c 100755 --- a/t/t4203-mailmap.sh +++ b/t/t4203-mailmap.sh @@ -255,6 +255,21 @@ test_expect_success 'Log output with --use-mailmap' ' ' cat >expect <<\EOF +Author: CTO <cto@xxxxxxxxxx> +Author: Santa Claus <santa.claus@xxxxxxxxxxxx> +Author: Santa Claus <santa.claus@xxxxxxxxxxxx> +Author: Other Author <other@xxxxxxxxx> +Author: Other Author <other@xxxxxxxxx> +Author: Some Dude <some@xxxxxxx> +Author: A U Thor <author@xxxxxxxxxxx> +EOF + +test_expect_success 'Log output with log.mailmap' ' + git -c log.mailmap=True log | grep Author >actual && + test_cmp expect actual +' + +cat >expect <<\EOF Author: Santa Claus <santa.claus@xxxxxxxxxxxx> Author: Santa Claus <santa.claus@xxxxxxxxxxxx> EOF @@ -263,6 +278,15 @@ test_expect_success 'Grep author with --use-mailmap' ' git log --use-mailmap --author Santa | grep Author >actual && test_cmp expect actual ' +cat >expect <<\EOF +Author: Santa Claus <santa.claus@xxxxxxxxxxxx> +Author: Santa Claus <santa.claus@xxxxxxxxxxxx> +EOF + +test_expect_success 'Grep author with log.mailmap' ' + git -c log.mailmap=True log --author Santa | grep Author >actual && + test_cmp expect actual +' >expect -- 1.8.1.304.gf036638 -- 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