Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2019-08-02 23:12:02 +0300
committerJunio C Hamano <gitster@pobox.com>2019-08-02 23:12:02 +0300
commit9b274e28871b3e4a4109582a34625df5fddc91c8 (patch)
treec921299d1381a3bd6486ef999e3cc432118d1d72
parente46249f73ebddca06cf16c01e8de1f310360c856 (diff)
parentf3eda90ffc10f9152e7492a34408a9f5e4c28b0f (diff)
Merge branch 'jc/log-mailmap-flip-defaults'
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
-rw-r--r--Documentation/RelNotes/2.23.0.txt8
-rw-r--r--Documentation/config/log.txt2
-rw-r--r--builtin/log.c21
-rwxr-xr-xt/t4203-mailmap.sh33
-rwxr-xr-xt/t7006-pager.sh2
5 files changed, 39 insertions, 27 deletions
diff --git a/Documentation/RelNotes/2.23.0.txt b/Documentation/RelNotes/2.23.0.txt
index e1b1ce56808..65c8c0e58cd 100644
--- a/Documentation/RelNotes/2.23.0.txt
+++ b/Documentation/RelNotes/2.23.0.txt
@@ -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.
diff --git a/Documentation/config/log.txt b/Documentation/config/log.txt
index 7798e10cb0a..e9e1e397f3f 100644
--- a/Documentation/config/log.txt
+++ b/Documentation/config/log.txt
@@ -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.
diff --git a/builtin/log.c b/builtin/log.c
index 1cf9e37736a..44b10b34154 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -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)
diff --git a/t/t4203-mailmap.sh b/t/t4203-mailmap.sh
index 43b1522ea21..918ada69eb9 100755
--- a/t/t4203-mailmap.sh
+++ b/t/t4203-mailmap.sh
@@ -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
diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh
index 7976fa7bcce..00e09a375c2 100755
--- a/t/t7006-pager.sh
+++ b/t/t7006-pager.sh
@@ -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 &&