You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.3 KiB
67 lines
1.3 KiB
#!/bin/sh |
|
|
|
test_description='git ls-files --deduplicate test' |
|
|
|
TEST_PASSES_SANITIZE_LEAK=true |
|
. ./test-lib.sh |
|
|
|
test_expect_success 'setup' ' |
|
>a.txt && |
|
>b.txt && |
|
>delete.txt && |
|
git add a.txt b.txt delete.txt && |
|
git commit -m base && |
|
echo a >a.txt && |
|
echo b >b.txt && |
|
echo delete >delete.txt && |
|
git add a.txt b.txt delete.txt && |
|
git commit -m tip && |
|
git tag tip && |
|
git reset --hard HEAD^ && |
|
echo change >a.txt && |
|
git commit -a -m side && |
|
git tag side |
|
' |
|
|
|
test_expect_success 'git ls-files --deduplicate to show unique unmerged path' ' |
|
test_must_fail git merge tip && |
|
git ls-files --deduplicate >actual && |
|
cat >expect <<-\EOF && |
|
a.txt |
|
b.txt |
|
delete.txt |
|
EOF |
|
test_cmp expect actual && |
|
git merge --abort |
|
' |
|
|
|
test_expect_success 'git ls-files -d -m --deduplicate with different display options' ' |
|
git reset --hard side && |
|
test_must_fail git merge tip && |
|
rm delete.txt && |
|
git ls-files -d -m --deduplicate >actual && |
|
cat >expect <<-\EOF && |
|
a.txt |
|
delete.txt |
|
EOF |
|
test_cmp expect actual && |
|
git ls-files -d -m -t --deduplicate >actual && |
|
cat >expect <<-\EOF && |
|
C a.txt |
|
C a.txt |
|
C a.txt |
|
R delete.txt |
|
C delete.txt |
|
EOF |
|
test_cmp expect actual && |
|
git ls-files -d -m -c --deduplicate >actual && |
|
cat >expect <<-\EOF && |
|
a.txt |
|
b.txt |
|
delete.txt |
|
EOF |
|
test_cmp expect actual && |
|
git merge --abort |
|
' |
|
|
|
test_done
|
|
|