opts.show_all_errors controls the number of errors that can be displayed, and set_porcelain_error_msgs gives the format. But the formatting would be incorrect if set_porcelain_error_msgs is called without setting opts.show_all_errors. There was a missing opts.show_all_errors in merge-recursive.c, and a case where it was not obvious enough in merge.c. Signed-off-by: Matthieu Moy <Matthieu.Moy@xxxxxxx> --- If this is the issue, we should probably change set_porcelain_error_msgs to set show_all_errors itself (but that requires changing the argument type) builtin/checkout.c | 2 +- merge-recursive.c | 1 + 2 files changed, 2 insertions(+), 1 deletions(-) diff --git a/builtin/checkout.c b/builtin/checkout.c index 7250e5c..8a7f994 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -376,6 +376,7 @@ static int merge_working_tree(struct checkout_opts *opts, topts.src_index = &the_index; topts.dst_index = &the_index; + topts.show_all_errors = 1; set_porcelain_error_msgs(topts.msgs, "checkout"); refresh_cache(REFRESH_QUIET); @@ -395,7 +396,6 @@ static int merge_working_tree(struct checkout_opts *opts, topts.dir = xcalloc(1, sizeof(*topts.dir)); topts.dir->flags |= DIR_SHOW_IGNORED; topts.dir->exclude_per_dir = ".gitignore"; - topts.show_all_errors = 1; tree = parse_tree_indirect(old->commit ? old->commit->object.sha1 : (unsigned char *)EMPTY_TREE_SHA1_BIN); diff --git a/merge-recursive.c b/merge-recursive.c index 638076e..c7fc7a7 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -180,6 +180,7 @@ static int git_merge_trees(int index_only, opts.fn = threeway_merge; opts.src_index = &the_index; opts.dst_index = &the_index; + opts.show_all_errors = 1; set_porcelain_error_msgs(opts.msgs, "merge"); init_tree_desc_from_tree(t+0, common); -- 1.7.2.2.175.ga619d.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html