log: really flip the --mailmap default
authorJunio C Hamano <gitster@pobox.com>
Thu, 1 Aug 2019 21:48:34 +0000 (14:48 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 2 Aug 2019 16:55:03 +0000 (09:55 -0700)
Update the docs, test the interaction between the new default,
configuration and command line option, in addition to actually
flipping the default.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config/log.txt
builtin/log.c
t/t4203-mailmap.sh
index 7798e10cb0ac5e4360ad50eae0a8a5a852a8f271..e9e1e397f3fd154511931f8c88e66c728b3cc07a 100644 (file)
@@ -41,4 +41,4 @@ log.showSignature::
 log.mailmap::
        If true, makes linkgit:git-log[1], linkgit:git-show[1], and
        linkgit:git-whatchanged[1] assume `--use-mailmap`, otherwise
-       assume `--no-use-mailmap`. False by default.
+       assume `--no-use-mailmap`. True by default.
index 40b4cbf57de394ac916648ca6970db3286e800be..44b10b3415414c0723ace29d9defb62c1354e9d6 100644 (file)
@@ -47,7 +47,7 @@ static int default_follow;
 static int default_show_signature;
 static int decoration_style;
 static int decoration_given;
-static int use_mailmap_config = -1;
+static int use_mailmap_config = 1;
 static const char *fmt_patch_subject_prefix = "PATCH";
 static const char *fmt_pretty;
 
@@ -160,7 +160,7 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix,
                         struct rev_info *rev, struct setup_revision_opt *opt)
 {
        struct userformat_want w;
-       int quiet = 0, source = 0, mailmap = 0;
+       int quiet = 0, source = 0, mailmap;
        static struct line_opt_callback_data line_cb = {NULL, NULL, STRING_LIST_INIT_DUP};
        static struct string_list decorate_refs_exclude = STRING_LIST_INIT_NODUP;
        static struct string_list decorate_refs_include = STRING_LIST_INIT_NODUP;
@@ -204,9 +204,6 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix,
        memset(&w, 0, sizeof(w));
        userformat_find_requirements(NULL, &w);
 
-       if (mailmap < 0)
-               mailmap = 0;
-
        if (!rev->show_notes_given && (!rev->pretty_given || w.notes))
                rev->show_notes = 1;
        if (rev->show_notes)
index 43b1522ea21a9c531c64fdba3b6f3bcde680063a..918ada69eb96662a2814a7f44c4eb0c3714bd0da 100755 (executable)
@@ -442,6 +442,34 @@ test_expect_success 'Log output with log.mailmap' '
        test_cmp expect actual
 '
 
+test_expect_success 'log.mailmap=false disables mailmap' '
+       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
+       git -c log.mailmap=False log | grep Author > actual &&
+       test_cmp expect actual
+'
+
+test_expect_success '--no-use-mailmap disables mailmap' '
+       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
+       git log --no-use-mailmap | grep Author > actual &&
+       test_cmp expect actual
+'
+
 cat >expect <<\EOF
 Author: Santa Claus <santa.claus@northpole.xx>
 Author: Santa Claus <santa.claus@northpole.xx>
@@ -461,6 +489,11 @@ test_expect_success 'Grep author with log.mailmap' '
        test_cmp expect actual
 '
 
+test_expect_success 'log.mailmap is true by default these days' '
+       git log --author Santa | grep Author >actual &&
+       test_cmp expect actual
+'
+
 test_expect_success 'Only grep replaced author with --use-mailmap' '
        git log --use-mailmap --author "<cto@coompany.xx>" >actual &&
        test_must_be_empty actual