Merge branch 'jc/log-mailmap-flip-defaults'
authorJunio C Hamano <gitster@pobox.com>
Fri, 2 Aug 2019 20:12:02 +0000 (13:12 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 2 Aug 2019 20:12:02 +0000 (13:12 -0700)
Hotfix for making "git log" use the mailmap by default.

* jc/log-mailmap-flip-defaults:
log: really flip the --mailmap default
log: flip the --mailmap default unconditionally

Documentation/RelNotes/2.23.0.txt
Documentation/config/log.txt
builtin/log.c
t/t4203-mailmap.sh
t/t7006-pager.sh
index e1b1ce56808151c71a149ff03fdfe05028dc79bb..65c8c0e58cdd8c8b46b97b77862f90c4f663d8bb 100644 (file)
@@ -10,6 +10,9 @@ Backward compatibility note
    prerequisite patches in an unstable way, which has been updated to
    compute in a way that is compatible with "git patch-id --stable".
 
+ * The "git log" command by default behaves as if the --mailmap option
+   was given.
+
 
 UI, Workflows & Features
 
@@ -91,11 +94,6 @@ UI, Workflows & Features
    commit-graph files now, which allows the commit-graph files to be
    updated incrementally.
 
- * The "git log" command learns to issue a warning when log.mailmap
-   configuration is not set and --[no-]mailmap option is not used, to
-   prepare users for future versions of Git that uses the mailmap by
-   default.
-
  * "git range-diff" output has been tweaked for easier identification
    of which part of what file the patch shown is about.
 
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 1cf9e37736a65d85c2b095469253ed0c400be44d..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;
 
@@ -156,21 +156,11 @@ static void cmd_log_init_defaults(struct rev_info *rev)
                parse_date_format(default_date_mode, &rev->date_mode);
 }
 
-static char warn_unspecified_mailmap_msg[] =
-N_("log.mailmap is not set; its implicit value will change in an\n"
-   "upcoming release. To squelch this message and preserve current\n"
-   "behaviour, set the log.mailmap configuration value to false.\n"
-   "\n"
-   "To squelch this message and adopt the new behaviour now, set the\n"
-   "log.mailmap configuration value to true.\n"
-   "\n"
-   "See 'git help config' and search for 'log.mailmap' for further information.");
-
 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;
@@ -214,13 +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) {
-               if (session_is_interactive() && !rev->pretty_given)
-                       warning("%s\n", _(warn_unspecified_mailmap_msg));
-
-               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
index 7976fa7bcce8ed11c403a4923d9ce3e7155765a0..00e09a375c2e6e3bfce2c2f8ce93493513082b2d 100755 (executable)
@@ -7,8 +7,6 @@ test_description='Test automatic use of a pager.'
 . "$TEST_DIRECTORY"/lib-terminal.sh
 
 test_expect_success 'setup' '
-       : squelch advice messages during the transition &&
-       git config --global log.mailmap false &&
        sane_unset GIT_PAGER GIT_PAGER_IN_USE &&
        test_unconfig core.pager &&