git-commit-vandalism/t/lib-bundle.sh
Ævar Arnfjörð Bjarmason e8a8e7ff98 test libs: rename bundle helper to "lib-bundle.sh"
Rename the recently introduced test-bundle-functions.sh to be
consistent with other lib-*.sh files, which is the convention for
these sorts of shared test library functions.

The new test-bundle-functions.sh was introduced in 9901164d81 (test:
add helper functions for git-bundle, 2021-01-11). It was the only
test-*.sh of this nature.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-02-10 13:54:34 -08:00

43 lines
1007 B
Bash

# Library of git-bundle related functions.
# Display the pack data contained in the bundle file, bypassing the
# header that contains the signature, prerequisites and references.
convert_bundle_to_pack () {
while read x && test -n "$x"
do
:;
done
cat
}
# Check count of objects in a bundle file.
# We can use "--thin" opiton to check thin pack, which must be fixed by
# command `git-index-pack --fix-thin --stdin`.
test_bundle_object_count () {
thin=
if test "$1" = "--thin"
then
thin=t
shift
fi
if test $# -ne 2
then
echo >&2 "args should be: <bundle> <count>"
return 1
fi
bundle=$1
pack=$bundle.pack
convert_bundle_to_pack <"$bundle" >"$pack" &&
if test -n "$thin"
then
mv "$pack" "$bundle.thin.pack" &&
git index-pack --stdin --fix-thin "$pack" <"$bundle.thin.pack"
else
git index-pack "$pack"
fi || return 1
count=$(git show-index <"${pack%pack}idx" | wc -l) &&
test $2 = $count && return 0
echo >&2 "error: object count for $bundle is $count, not $2"
return 1
}