f6b224d5eb
If we execute "git ls-tree" with combined "--name-only" and "--long" , only the pathname will be printed, the size is omitted (the original discoverer was Peff in [1]). This commit fix this issue by using `OPT_CMDMODE()` instead to make both of them mutually exclusive. [1] https://public-inbox.org/git/YZK0MKCYAJmG+pSU@coredump.intra.peff.net/ Helped-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Teng Long <dyroneteng@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
36 lines
681 B
Bash
Executable File
36 lines
681 B
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='
|
|
Miscellaneous tests for git ls-tree.
|
|
|
|
1. git ls-tree fails in presence of tree damage.
|
|
|
|
'
|
|
|
|
TEST_PASSES_SANITIZE_LEAK=true
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success 'setup' '
|
|
mkdir a &&
|
|
touch a/one &&
|
|
git add a/one &&
|
|
git commit -m test
|
|
'
|
|
|
|
test_expect_success 'ls-tree fails with non-zero exit code on broken tree' '
|
|
tree=$(git rev-parse HEAD:a) &&
|
|
rm -f .git/objects/$(echo $tree | sed -e "s,^\(..\),\1/,") &&
|
|
test_must_fail git ls-tree -r HEAD
|
|
'
|
|
|
|
for opts in \
|
|
"--name-only --long" \
|
|
"--name-status --long"
|
|
do
|
|
test_expect_success "usage: incompatible options: $opts" '
|
|
test_expect_code 129 git ls-tree $opts $tree
|
|
'
|
|
done
|
|
|
|
test_done
|