From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: CB Bailey <cb@hashpling.org>
Cc: git@vger.kernel.org
Subject: Re: [RFC/PATCH] Use mailmap by default in log, show and whatchanged
Date: Thu, 13 Dec 2018 14:49:12 +0100 (STD) [thread overview]
Message-ID: <nycvar.QRO.7.76.6.1812131448540.43@tvgsbejvaqbjf.bet> (raw)
In-Reply-To: <20181213120940.26477-1-cb@hashpling.org>
Hi CB,
On Thu, 13 Dec 2018, CB Bailey wrote:
> From: CB Bailey <cbailey32@bloomberg.net>
>
> People who have changed their name or email address will usually know
> that they need to set 'log.mailmap' in order to have their new details
> reflected for old commits with 'git log', but others who interact with
> them may not know or care enough to enable this option.
>
> Change the default for 'git log' and friends to always use mailmap so
> that everyone gets to see canonical names and email addresses.
>
> Signed-off-by: CB Bailey <cbailey32@bloomberg.net>
> ---
>
> Related to my patch to make shortlog pass the mailmap into the revision
> walker which may end up being configuratble behavior, I thought I'd
> propose this for discussion.
>
> For people who change their names during their involvement in a project,
> it can be important that the people with whom they work only see their
> correct name, even when browsing old history.
This makes a ton of sense to me.
Thank you,
Dscho
>
> I had a dig around in the mailing list archives and couldn't find any
> specific reason not to use a mailmap in log where one is in use. I did
> find this message which suggests that it makes sense to make it the
> default for human-consumed formats. This patch doesn't affect
> "--pretty=raw" formatting.
>
> Documentation/config/log.txt | 4 ++--
> Documentation/git-log.txt | 12 +++++++++---
> builtin/log.c | 2 +-
> t/t4203-mailmap.sh | 18 ++++++++++++++++++
> 4 files changed, 30 insertions(+), 6 deletions(-)
>
> diff --git a/Documentation/config/log.txt b/Documentation/config/log.txt
> index 78d9e4453a..8a01eed46b 100644
> --- a/Documentation/config/log.txt
> +++ b/Documentation/config/log.txt
> @@ -39,5 +39,5 @@ log.showSignature::
> linkgit:git-whatchanged[1] assume `--show-signature`.
>
> log.mailmap::
> - If true, makes linkgit:git-log[1], linkgit:git-show[1], and
> - linkgit:git-whatchanged[1] assume `--use-mailmap`.
> + If false, makes linkgit:git-log[1], linkgit:git-show[1], and
> + linkgit:git-whatchanged[1] assume `--no-use-mailmap`.
> diff --git a/Documentation/git-log.txt b/Documentation/git-log.txt
> index 90761f1694..7815c9a6cb 100644
> --- a/Documentation/git-log.txt
> +++ b/Documentation/git-log.txt
> @@ -50,9 +50,11 @@ OPTIONS
> commit was reached.
>
> --use-mailmap::
> - Use mailmap file to map author and committer names and email
> - addresses to canonical real names and email addresses. See
> - linkgit:git-shortlog[1].
> +--no-use-mailmap::
> + Use (or don't use) mailmap file to map author and committer names and
> + email addresses to canonical real names and email addresses. The default
> + is to use the mailmap file, but this can be overriden with the
> + `log.mailmap` configuration option. See linkgit:git-shortlog[1].
>
> --full-diff::
> Without this flag, `git log -p <path>...` shows commits that
> @@ -205,6 +207,10 @@ log.showRoot::
> `git log -p` output would be shown without a diff attached.
> The default is `true`.
>
> +log.mailmap::
> + If `false`, makes `git log` and related commands assume
> + `--no-use-mailmap`.
> +
> log.showSignature::
> If `true`, `git log` and related commands will act as if the
> `--show-signature` option was passed to them.
> diff --git a/builtin/log.c b/builtin/log.c
> index e8e51068bd..41a5eefb20 100644
> --- a/builtin/log.c
> +++ b/builtin/log.c
> @@ -46,7 +46,7 @@ static int default_follow;
> static int default_show_signature;
> static int decoration_style;
> static int decoration_given;
> -static int use_mailmap_config;
> +static int use_mailmap_config = 1;
> static const char *fmt_patch_subject_prefix = "PATCH";
> static const char *fmt_pretty;
>
> diff --git a/t/t4203-mailmap.sh b/t/t4203-mailmap.sh
> index 43b1522ea2..efb145c4cd 100755
> --- a/t/t4203-mailmap.sh
> +++ b/t/t4203-mailmap.sh
> @@ -424,6 +424,24 @@ EOF
>
> test_expect_success 'Log output with --use-mailmap' '
> git log --use-mailmap | grep Author >actual &&
> + test_cmp expect actual &&
> +# --use-mailmap is the default
> + git log | grep Author >actual &&
> + test_cmp expect actual
> +'
> +
> +cat >expect <<\EOF
> +Author: CTO <cto@coompany.xx>
> +Author: claus <me@company.xx>
> +Author: santa <me@company.xx>
> +Author: nick2 <nick2@company.xx>
> +Author: nick2 <bugs@company.xx>
> +Author: nick1 <bugs@company.xx>
> +Author: A U Thor <author@example.com>
> +EOF
> +
> +test_expect_success 'Log output with --no-use-mailmap' '
> + git log --no-use-mailmap | grep Author >actual &&
> test_cmp expect actual
> '
>
> --
> 2.20.0
>
>
prev parent reply other threads:[~2018-12-13 13:49 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-13 12:09 [RFC/PATCH] Use mailmap by default in log, show and whatchanged CB Bailey
2018-12-13 12:12 ` CB Bailey
2018-12-13 13:49 ` Johannes Schindelin [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=nycvar.QRO.7.76.6.1812131448540.43@tvgsbejvaqbjf.bet \
--to=johannes.schindelin@gmx.de \
--cc=cb@hashpling.org \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).