Even when -m is given to allow fallilng back to 3-way merge while switching branches, we should refuse if the original index is unmerged. Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- * I think this bug was inherited from the scripted version. Fixing it is much easier here. builtin-checkout.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/builtin-checkout.c b/builtin-checkout.c index 283831e..e028270 100644 --- a/builtin-checkout.c +++ b/builtin-checkout.c @@ -226,8 +226,8 @@ static int merge_working_tree(struct checkout_opts *opts, refresh_cache(REFRESH_QUIET); if (unmerged_cache()) { - ret = opts->merge ? -1 : - error("you need to resolve your current index first"); + error("you need to resolve your current index first"); + return 1; } else { topts.update = 1; topts.merge = 1; - 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