@@ -532,6 +532,38 @@ test_expect_success 'merge with conflict outside cone' '
532532 test_all_match git rev-parse HEAD^{tree}
533533'
534534
535+ test_expect_success ' cherry-pick/rebase with conflict outside cone' '
536+ init_repos &&
537+
538+ for OPERATION in cherry-pick rebase
539+ do
540+ test_all_match git checkout -B tip &&
541+ test_all_match git reset --hard merge-left &&
542+ test_all_match git status --porcelain=v2 &&
543+ test_all_match test_must_fail git $OPERATION merge-right &&
544+ test_all_match git status --porcelain=v2 &&
545+
546+ # Resolve the conflict in different ways:
547+ # 1. Revert to the base
548+ test_all_match git checkout base -- deep/deeper2/a &&
549+ test_all_match git status --porcelain=v2 &&
550+
551+ # 2. Add the file with conflict markers
552+ test_all_match git add folder1/a &&
553+ test_all_match git status --porcelain=v2 &&
554+
555+ # 3. Rename the file to another sparse filename and
556+ # accept conflict markers as resolved content.
557+ run_on_all mv folder2/a folder2/z &&
558+ test_all_match git add folder2 &&
559+ test_all_match git status --porcelain=v2 &&
560+
561+ test_all_match git $OPERATION --continue &&
562+ test_all_match git status --porcelain=v2 &&
563+ test_all_match git rev-parse HEAD^{tree} || return 1
564+ done
565+ '
566+
535567test_expect_success ' merge with outside renames' '
536568 init_repos &&
537569
@@ -666,9 +698,12 @@ test_expect_success 'sparse-index is not expanded' '
666698 echo >>sparse-index/untracked.txt &&
667699 ensure_not_expanded add . &&
668700
669- ensure_not_expanded checkout -f update-deep &&
670- ensure_not_expanded merge -s ort -m merge update-folder1 &&
671- ensure_not_expanded merge -s ort -m merge update-folder2
701+ for OPERATION in "merge -s ort -m merge" cherry-pick rebase
702+ do
703+ ensure_not_expanded checkout -f -B temp update-deep &&
704+ ensure_not_expanded $OPERATION update-folder1 &&
705+ ensure_not_expanded $OPERATION update-folder2 || return 1
706+ done
672707'
673708
674709test_expect_success ' sparse-index is not expanded: merge conflict in cone' '
0 commit comments