contrib/subtree: convert subtree type check to use case statement

The `subtree_for_commit ()` helper function asserts that the subtree
identified by its parameters are either a commit or tree. This is done
via the `-o` parameter of test, which is discouraged.

Refactor the code to instead use a switch statement over the type.
Despite being aligned with our coding guidelines, the resulting code is
arguably also easier to read.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt 2023-11-10 11:01:24 +01:00 коммит произвёл Junio C Hamano
Родитель 88983946fa
Коммит 47c39c28bc
1 изменённых файлов: 10 добавлений и 4 удалений

Просмотреть файл

@ -641,10 +641,16 @@ subtree_for_commit () {
while read mode type tree name
do
assert test "$name" = "$dir"
assert test "$type" = "tree" -o "$type" = "commit"
test "$type" = "commit" && continue # ignore submodules
echo $tree
break
case "$type" in
commit)
continue;; # ignore submodules
tree)
echo $tree
break;;
*)
die "fatal: tree entry is of type ${type}, expected tree or commit";;
esac
done || exit $?
}