зеркало из https://github.com/microsoft/git.git
diff(sparse-index): verify with partially-sparse
This verifies that `diff` and `diff --staged` behave the same in sparse index repositories in the following partially-staged scenarios (i.e. the index, HEAD, and working directory differ at a given path): 1. Path is within sparse-checkout cone. 2. Path is outside sparse-checkout cone. 3. A merge conflict exists for paths outside sparse-checkout cone. Signed-off-by: Lessley Dennington <lessleydennington@gmail.com>
This commit is contained in:
Родитель
dab75a58d2
Коммит
7dfcc54ac9
|
@ -505,6 +505,43 @@ test_expect_success 'diff --cached' '
|
|||
test_all_match git diff --cached
|
||||
'
|
||||
|
||||
test_expect_success 'diff partially-staged' '
|
||||
init_repos &&
|
||||
|
||||
write_script edit-contents <<-\EOF &&
|
||||
echo text >>$1
|
||||
EOF
|
||||
|
||||
# Add file within cone
|
||||
test_all_match git sparse-checkout set deep &&
|
||||
run_on_all ../edit-contents deep/testfile &&
|
||||
test_all_match git add deep/testfile &&
|
||||
run_on_all ../edit-contents deep/testfile &&
|
||||
|
||||
test_all_match git diff &&
|
||||
test_all_match git diff --staged &&
|
||||
|
||||
# Add file outside cone
|
||||
test_all_match git reset --hard &&
|
||||
run_on_all mkdir newdirectory &&
|
||||
run_on_all ../edit-contents newdirectory/testfile &&
|
||||
test_all_match git sparse-checkout set newdirectory &&
|
||||
test_all_match git add newdirectory/testfile &&
|
||||
run_on_all ../edit-contents newdirectory/testfile &&
|
||||
test_all_match git sparse-checkout set &&
|
||||
|
||||
test_all_match git diff &&
|
||||
test_all_match git diff --staged &&
|
||||
|
||||
# Merge conflict outside cone
|
||||
test_all_match git reset --hard &&
|
||||
test_all_match git checkout merge-left &&
|
||||
test_all_match test_must_fail git merge merge-right &&
|
||||
|
||||
test_all_match git diff &&
|
||||
test_all_match git diff --staged
|
||||
'
|
||||
|
||||
# NEEDSWORK: sparse-checkout behaves differently from full-checkout when
|
||||
# running this test with 'df-conflict-2' after 'df-conflict-1'.
|
||||
test_expect_success 'diff with renames and conflicts' '
|
||||
|
@ -1429,6 +1466,11 @@ test_expect_success 'sparse-index is not expanded' '
|
|||
ensure_not_expanded reset --merge update-deep &&
|
||||
ensure_not_expanded reset --hard &&
|
||||
|
||||
echo a test change >>sparse-index/README.md &&
|
||||
ensure_not_expanded diff &&
|
||||
git -C sparse-index add README.md &&
|
||||
ensure_not_expanded diff --staged &&
|
||||
|
||||
ensure_not_expanded reset base -- deep/a &&
|
||||
ensure_not_expanded reset base -- nonexistent-file &&
|
||||
ensure_not_expanded reset deepest -- deep &&
|
||||
|
|
Загрузка…
Ссылка в новой задаче