diff --git a/Documentation/merge-options.txt b/Documentation/merge-options.txt
index 2bd92c4..5afc99f 100644
--- a/Documentation/merge-options.txt
+++ b/Documentation/merge-options.txt
@@ -8,9 +8,19 @@
 inspect and further tweak the merge result before committing.
 
 --edit::
--e::
+--no-edit::
 	Invoke editor before committing successful merge to further
-	edit the default merge message.
+	edit the default merge message. The `--no-edit` option can be
+	used to accept the auto-generated message (this is generally
+	discouraged) when merging an annotated tag, in which case
+	`git merge` automatically spawns the editor so that the result
+	of the GPG verification of the tag can be seen.
++
+Older scripts may depend on the historical behaviour of not allowing the
+user to edit the merge log message. They will see an editor opened when
+they run `git merge` to merge an annotated tag. To make it easier to adjust
+such scripts to the updated behaviour, the environment variable
+`GIT_MERGE_AUTOEDIT` can be set to `no` at the beginning of them.
 
 --ff::
 	When the merge resolves as a fast-forward, only update the branch
diff --git a/builtin/merge.c b/builtin/merge.c
index 8018a14..5126443 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -1109,6 +1109,33 @@
 	close(fd);
 }
 
+static int default_edit_option(void)
+{
+	static const char name[] = "GIT_MERGE_AUTOEDIT";
+	const char *e = getenv(name);
+	struct stat st_stdin, st_stdout;
+
+	if (have_message)
+		/* an explicit -m msg without --[no-]edit */
+		return 0;
+
+	if (e) {
+		int v = git_config_maybe_bool(name, e);
+		if (v < 0)
+			die("Bad value '%s' in environment '%s'", e, name);
+		return v;
+	}
+
+	/* Use editor if stdin and stdout are the same and is a tty */
+	return (!fstat(0, &st_stdin) &&
+		!fstat(1, &st_stdout) &&
+		isatty(0) && isatty(1) &&
+		st_stdin.st_dev == st_stdout.st_dev &&
+		st_stdin.st_ino == st_stdout.st_ino &&
+		st_stdin.st_mode == st_stdout.st_mode);
+}
+
+
 int cmd_merge(int argc, const char **argv, const char *prefix)
 {
 	unsigned char result_tree[20];
@@ -1298,7 +1325,7 @@
 		    merge_remote_util(commit)->obj &&
 		    merge_remote_util(commit)->obj->type == OBJ_TAG) {
 			if (option_edit < 0)
-				option_edit = 1;
+				option_edit = default_edit_option();
 			allow_fast_forward = 0;
 		}
 	}
