Merge branch 'kb/maint-prune-rmdir-closedir'
[gitweb.git] / builtin / merge.c
index 62c7b681778d6a3fcffc792cc8a131cbd7f45f90..cb8f14910b93edb7f1bfa6a4ee82f6a3d9fd7e40 100644 (file)
@@ -399,6 +399,8 @@ static void finish(struct commit *head_commit,
        if (new_head && show_diffstat) {
                struct diff_options opts;
                diff_setup(&opts);
+               opts.stat_width = -1; /* use full terminal width */
+               opts.stat_graph_width = -1; /* respect statGraphWidth config */
                opts.output_format |=
                        DIFF_FORMAT_SUMMARY | DIFF_FORMAT_DIFFSTAT;
                opts.detect_rename = DIFF_DETECT_RENAME;
@@ -1129,7 +1131,7 @@ static int default_edit_option(void)
        /* 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(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);
@@ -1320,10 +1322,12 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
                            sha1_to_hex(commit->object.sha1));
                setenv(buf.buf, argv[i], 1);
                strbuf_reset(&buf);
-               if (merge_remote_util(commit) &&
+               if (!fast_forward_only &&
+                   merge_remote_util(commit) &&
                    merge_remote_util(commit)->obj &&
                    merge_remote_util(commit)->obj->type == OBJ_TAG) {
-                       option_edit = 1;
+                       if (option_edit < 0)
+                               option_edit = 1;
                        allow_fast_forward = 0;
                }
        }