log: add warning for unspecified log.mailmap setting

Based on discussions around changing the log.mailmap default to being enabled, it was decided that a transitional period is required. Accordingly, we announce this transitional period with a warning message. Signed-off-by: Ariadne Conill <ariadne@dereferenced.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Ariadne Conill committed Jul 15, 2019 at 07:41 UTC f0596ecc8de9bdbdfc394b2f153ff67f64fc4615
1 file changed +24 -2
builtin/log.c
+24 -2
@@ -47,7 +47,7 @@ static int default_follow;
47 static int default_show_signature;
48 static int decoration_style;
49 static int decoration_given;
50 -static int use_mailmap_config;
50 +static int use_mailmap_config = -1;
51 static const char *fmt_patch_subject_prefix = "PATCH";
52 static const char *fmt_pretty;
53
@@ -63,9 +63,14 @@ struct line_opt_callback_data {
63 struct string_list args;
64 };
65
66 +static int session_is_interactive(void)
67 +{
68 + return isatty(1) || pager_in_use();
69 +}
70 +
71 static int auto_decoration_style(void)
72 {
68 - return (isatty(1) || pager_in_use()) ? DECORATE_SHORT_REFS : 0;
73 + return session_is_interactive() ? DECORATE_SHORT_REFS : 0;
74 }
75
76 static int parse_decoration_style(const char *value)
@@ -151,6 +156,16 @@ static void cmd_log_init_defaults(struct rev_info *rev)
156 parse_date_format(default_date_mode, &rev->date_mode);
157 }
158
159 +static char warn_unspecified_mailmap_msg[] =
160 +N_("log.mailmap is not set; its implicit value will change in an\n"
161 + "upcoming release. To squelch this message and preserve current\n"
162 + "behaviour, set the log.mailmap configuration value to false.\n"
163 + "\n"
164 + "To squelch this message and adopt the new behaviour now, set the\n"
165 + "log.mailmap configuration value to true.\n"
166 + "\n"
167 + "See 'git help config' and search for 'log.mailmap' for further information.");
168 +
169 static void cmd_log_init_finish(int argc, const char **argv, const char *prefix,
170 struct rev_info *rev, struct setup_revision_opt *opt)
171 {
@@ -199,6 +214,13 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix,
214 memset(&w, 0, sizeof(w));
215 userformat_find_requirements(NULL, &w);
216
217 + if (mailmap < 0) {
218 + if (session_is_interactive() && !rev->pretty_given)
219 + warning("%s\n", _(warn_unspecified_mailmap_msg));
220 +
221 + mailmap = 0;
222 + }
223 +
224 if (!rev->show_notes_given && (!rev->pretty_given || w.notes))
225 rev->show_notes = 1;
226 if (rev->show_notes)