t4140: test apply --intent-to-add interactions

Test that applying a new file creation patch with --intent-to-add to
an existing index does not modify the index outside adding the correct
intents-to-add, and that applying a patch with both modifications
and new file creations with --intent-to-add correctly only adds
intents-to-add to the index.

Signed-off-by: Raymond E. Pasco <ray@ameretat.dev>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Raymond E. Pasco
2025-07-07 08:12:32 -04:00
committed by Junio C Hamano
parent 7c6e61f877
commit a4c969aa0d

View File

@@ -7,6 +7,10 @@ test_description='git apply of i-t-a file'
test_expect_success setup '
test_write_lines 1 2 3 4 5 >blueprint &&
cat blueprint >committed-file &&
git add committed-file &&
git commit -m "commit" &&
cat blueprint >test-file &&
git add -N test-file &&
git diff >creation-patch &&
@@ -14,7 +18,14 @@ test_expect_success setup '
rm -f test-file &&
git diff >deletion-patch &&
grep "deleted file mode 100644" deletion-patch
grep "deleted file mode 100644" deletion-patch &&
git rm -f test-file &&
test_write_lines 6 >>committed-file &&
cat blueprint >test-file &&
git add -N test-file &&
git diff >complex-patch &&
git restore committed-file
'
test_expect_success 'apply creation patch to ita path (--cached)' '
@@ -53,4 +64,22 @@ test_expect_success 'apply deletion patch to ita path (--index)' '
git ls-files --stage --error-unmatch test-file
'
test_expect_success 'apply creation patch to existing index with -N' '
git rm -f test-file &&
cat blueprint >index-file &&
git add index-file &&
git apply -N creation-patch &&
git ls-files --stage --error-unmatch index-file &&
git ls-files --stage --error-unmatch test-file
'
test_expect_success 'apply complex patch with -N' '
git rm -f test-file index-file &&
git apply -N complex-patch &&
git ls-files --stage --error-unmatch test-file &&
git diff | grep "a/committed-file"
'
test_done