git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / mirror / code / Atom feed
* [PATCH v3 0/3] document deprecation of log.mailmap=false default
@ 2019-07-15 12:41 Ariadne Conill
  2019-07-15 12:41 ` [PATCH v3 1/3] log: add warning for unspecified log.mailmap setting Ariadne Conill
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Ariadne Conill @ 2019-07-15 12:41 UTC (permalink / raw)
  To: git; +Cc: Ariadne Conill

Based on the discussion of the previous patches, we concluded that
changing the default will require a transitional period.

As such, I have introduced a deprecation warning that is printed when
the log builtin commands are used.

Thanks to Junio and everyone else for providing feedback on how to
proceed.

New in version 3:
- Split interactive session detection in auto_decoration_style() into
  it's own function.
- Defang the tests in a more efficient way.

New in version 2:
- The warning is disabled when `--format` is used.
- The warning is disabled when not called from a controlling terminal.
- Tests which fake a controlling terminal have been defanged.

Ariadne Conill (3):
  log: add warning for unspecified log.mailmap setting
  documentation: mention --no-use-mailmap and log.mailmap false setting
  tests: defang pager tests by explicitly disabling the log.mailmap
    warning

 Documentation/config/log.txt |  3 ++-
 Documentation/git-log.txt    |  2 +-
 builtin/log.c                | 26 ++++++++++++++++++++++++--
 t/t7006-pager.sh             |  2 ++
 4 files changed, 29 insertions(+), 4 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v3 1/3] log: add warning for unspecified log.mailmap setting
  2019-07-15 12:41 [PATCH v3 0/3] document deprecation of log.mailmap=false default Ariadne Conill
@ 2019-07-15 12:41 ` Ariadne Conill
  2019-07-15 12:41 ` [PATCH v3 2/3] documentation: mention --no-use-mailmap and log.mailmap false setting Ariadne Conill
  2019-07-15 12:41 ` [PATCH v3 3/3] tests: defang pager tests by explicitly disabling the log.mailmap warning Ariadne Conill
  2 siblings, 0 replies; 4+ messages in thread
From: Ariadne Conill @ 2019-07-15 12:41 UTC (permalink / raw)
  To: git; +Cc: Ariadne Conill

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>
---
 builtin/log.c | 26 ++++++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git a/builtin/log.c b/builtin/log.c
index 7c8767d3bc..1cf9e37736 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;
+static int use_mailmap_config = -1;
 static const char *fmt_patch_subject_prefix = "PATCH";
 static const char *fmt_pretty;
 
@@ -63,9 +63,14 @@ struct line_opt_callback_data {
 	struct string_list args;
 };
 
+static int session_is_interactive(void)
+{
+	return isatty(1) || pager_in_use();
+}
+
 static int auto_decoration_style(void)
 {
-	return (isatty(1) || pager_in_use()) ? DECORATE_SHORT_REFS : 0;
+	return session_is_interactive() ? DECORATE_SHORT_REFS : 0;
 }
 
 static int parse_decoration_style(const char *value)
@@ -151,6 +156,16 @@ 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)
 {
@@ -199,6 +214,13 @@ 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)
-- 
2.17.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v3 2/3] documentation: mention --no-use-mailmap and log.mailmap false setting
  2019-07-15 12:41 [PATCH v3 0/3] document deprecation of log.mailmap=false default Ariadne Conill
  2019-07-15 12:41 ` [PATCH v3 1/3] log: add warning for unspecified log.mailmap setting Ariadne Conill
@ 2019-07-15 12:41 ` Ariadne Conill
  2019-07-15 12:41 ` [PATCH v3 3/3] tests: defang pager tests by explicitly disabling the log.mailmap warning Ariadne Conill
  2 siblings, 0 replies; 4+ messages in thread
From: Ariadne Conill @ 2019-07-15 12:41 UTC (permalink / raw)
  To: git; +Cc: Ariadne Conill

The log.mailmap setting may be explicitly set to false, which disables
the mailmap feature implicity. In practice, doing so is equivalent to
always using the previously undocumented --no-use-mailmap option on the
command line.

Accordingly, we document both the existence of --no-use-mailmap as
well as briefly discuss the equivalence of it to log.mailmap=False.

Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
---
 Documentation/config/log.txt | 3 ++-
 Documentation/git-log.txt    | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/Documentation/config/log.txt b/Documentation/config/log.txt
index 78d9e4453a..7798e10cb0 100644
--- a/Documentation/config/log.txt
+++ b/Documentation/config/log.txt
@@ -40,4 +40,5 @@ log.showSignature::
 
 log.mailmap::
 	If true, makes linkgit:git-log[1], linkgit:git-show[1], and
-	linkgit:git-whatchanged[1] assume `--use-mailmap`.
+	linkgit:git-whatchanged[1] assume `--use-mailmap`, otherwise
+	assume `--no-use-mailmap`. False by default.
diff --git a/Documentation/git-log.txt b/Documentation/git-log.txt
index b02e922dc3..b406bc4c48 100644
--- a/Documentation/git-log.txt
+++ b/Documentation/git-log.txt
@@ -49,7 +49,7 @@ OPTIONS
 	Print out the ref name given on the command line by which each
 	commit was reached.
 
---use-mailmap::
+--[no-]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].
-- 
2.17.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v3 3/3] tests: defang pager tests by explicitly disabling the log.mailmap warning
  2019-07-15 12:41 [PATCH v3 0/3] document deprecation of log.mailmap=false default Ariadne Conill
  2019-07-15 12:41 ` [PATCH v3 1/3] log: add warning for unspecified log.mailmap setting Ariadne Conill
  2019-07-15 12:41 ` [PATCH v3 2/3] documentation: mention --no-use-mailmap and log.mailmap false setting Ariadne Conill
@ 2019-07-15 12:41 ` Ariadne Conill
  2 siblings, 0 replies; 4+ messages in thread
From: Ariadne Conill @ 2019-07-15 12:41 UTC (permalink / raw)
  To: git; +Cc: Ariadne Conill

In the previous patch, we added a deprecation warning for the current
log.mailmap setting. This warning only appears when git is attached to
a controlling terminal. Some tests however run under an emulated
terminal, so we need to disable the warning for those tests.

Thanks to Junio for suggesting that we do this in the setup function.

Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
---
 t/t7006-pager.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh
index 00e09a375c..7976fa7bcc 100755
--- a/t/t7006-pager.sh
+++ b/t/t7006-pager.sh
@@ -7,6 +7,8 @@ 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 &&
 
-- 
2.17.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-07-15 12:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-15 12:41 [PATCH v3 0/3] document deprecation of log.mailmap=false default Ariadne Conill
2019-07-15 12:41 ` [PATCH v3 1/3] log: add warning for unspecified log.mailmap setting Ariadne Conill
2019-07-15 12:41 ` [PATCH v3 2/3] documentation: mention --no-use-mailmap and log.mailmap false setting Ariadne Conill
2019-07-15 12:41 ` [PATCH v3 3/3] tests: defang pager tests by explicitly disabling the log.mailmap warning Ariadne Conill

Code repositories for project(s) associated with this 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).