67 lines
1.3 KiB
Bash
67 lines
1.3 KiB
Bash
|
#!/bin/sh
|
||
|
|
||
|
test_description='git ls-files --deduplicate test'
|
||
|
|
||
|
. ./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
|