Commit Diff


commit - 35ca1db76b33010a85a6d0e68e5d78d451028269
commit + c1b057235b48f7b8bc01bd3c31348517856bc68b
blob - 46e43986431c8a31897485cce9e5e344d30c1afe
blob + 5aa3eb413b775cdcac39caf15b875eb40f76ad63
--- got/got.c
+++ got/got.c
@@ -10824,24 +10824,26 @@ cmd_merge(int argc, char *argv[])
 		if (error)
 			goto done;
 		printf("Merge of %s interrupted on request\n", branch_name);
-	} else if (upa.conflicts > 0 || upa.missing > 0) {
+	} else if (upa.conflicts > 0 || upa.missing > 0 ||
+	    upa.not_deleted > 0 || upa.unversioned > 0) {
 		error = got_worktree_merge_postpone(worktree, fileindex);
 		if (error)
 			goto done;
-		if (upa.conflicts > 0 && upa.missing == 0) {
+		if (upa.conflicts > 0 && upa.missing == 0 &&
+		    upa.not_deleted == 0 && upa.unversioned == 0) {
 			error = got_error_msg(GOT_ERR_CONFLICTS,
 			    "conflicts must be resolved before merging "
 			    "can continue");
 		} else if (upa.conflicts > 0) {
 			error = got_error_msg(GOT_ERR_CONFLICTS,
 			    "conflicts must be resolved before merging "
-			    "can continue; changes destined for missing "
+			    "can continue; changes destined for some "
 			    "files were not yet merged and "
 			    "should be merged manually if required before the "
 			    "merge operation is continued");
 		} else {
 			error = got_error_msg(GOT_ERR_CONFLICTS,
-			    "changes destined for missing "
+			    "changes destined for some "
 			    "files were not yet merged and should be "
 			    "merged manually if required before the "
 			    "merge operation is continued");
blob - 9ccf58a99fdd79c9cbff150bd8b95494b4706cd0
blob + be7e58787cda7e3de992a5142542bebcf76ab385
--- regress/cmdline/merge.sh
+++ regress/cmdline/merge.sh
@@ -997,7 +997,7 @@ test_merge_missing_file() {
 		return 1
 	fi
 
-	echo -n "got: changes destined for missing files " \
+	echo -n "got: changes destined for some files " \
 		> $testroot/stderr.expected
 	echo -n "were not yet merged and should be merged manually if " \
 		>> $testroot/stderr.expected