git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2] log: add log.mailmap configuration option

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 23, 2012, 04:26 UTC
Message-ID
<7v8v8ppf6f.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1356195512-4846-3-git-send-email-apelisse@gmail.com>
Antoine Pelisse <apelisse@gmail.com> writes:
Show 8 quoted lines
> This patch provides a new configuration option 'log.mailmap' to
> automatically use the --use-mailmap option from git-show, git-log and
> git-whatchanged commands.
>
> Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
> ---
> I'm wondering if it would be needed to add a no-use-mailmap option to
> log command so that it can cancel this configuration option.

The usual way for adding a new feature is to add a --enable-feature long-option without any configuration variable to let users try it out in the field, and then add the configuration to let it be default for users who opt in. The first step should also allow a command line option to disable (which should come for free if you use parse-options API correctly).

Show 97 quoted lines
>  Documentation/config.txt |    4 ++++
>  builtin/log.c            |    8 +++++++-
>  t/t4203-mailmap.sh       |   24 ++++++++++++++++++++++++
>  3 files changed, 35 insertions(+), 1 deletion(-)
>
> 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..f6936ff 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;
>  static const char *fmt_patch_subject_prefix = "PATCH";
>  static const char *fmt_pretty;
>
> @@ -138,7 +139,7 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix,
>  	if (source)
>  		rev->show_source = 1;
>
> -	if (mailmap) {
> +	if (mailmap || use_mailmap) {
>  		rev->mailmap = xcalloc(1, sizeof(struct string_list));
>  		read_mailmap(rev->mailmap, NULL);
>  	}
> @@ -358,6 +359,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 = 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@company.xx>
> +Author: Santa Claus <santa.claus@northpole.xx>
> +Author: Santa Claus <santa.claus@northpole.xx>
> +Author: Other Author <other@author.xx>
> +Author: Other Author <other@author.xx>
> +Author: Some Dude <some@dude.xx>
> +Author: A U Thor <author@example.com>
> +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@northpole.xx>
>  Author: Santa Claus <santa.claus@northpole.xx>
>  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@northpole.xx>
> +Author: Santa Claus <santa.claus@northpole.xx>
> +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.7.9.5
Previous: Antoine PelisseNext: Junio C Hamano
Message 13 of 15 in “Mailmap in log improvements”
  1. 0/2 Mailmap in log improvementsAntoine Pelisse, Dec 22, 2012
  2. 1/2 log: grep author/committer using mailmapAntoine Pelisse, Dec 22, 2012
  3. Junio C HamanoDec 26, 2012
  4. Antoine PelisseDec 26, 2012
  5. Junio C HamanoDec 26, 2012
  6. log: grep author/committer using mailmapAntoine Pelisse, Dec 27, 2012
  7. Junio C HamanoDec 27, 2012
  8. Junio C HamanoDec 27, 2012
  9. Antoine PelisseDec 28, 2012
  10. Junio C HamanoDec 28, 2012
  11. Antoine PelisseDec 28, 2012
  12. 2/2 log: add log.mailmap configuration optionAntoine Pelisse, Dec 22, 2012
  13. Junio C HamanoDec 23, 2012
  14. Junio C HamanoDec 26, 2012
  15. Antoine PelisseDec 26, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.