43 lines
1007 B
Bash
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
|
|
}
|