mirror of
https://github.com/git/git
synced 2024-08-28 12:09:19 +00:00
![Junio C Hamano](/assets/img/avatar_default.png)
There are three codepaths that use a variable whose name is pack_compression_level to affect how objects and deltas sent to a packfile is compressed. Unlike zlib_compression_level that controls the loose object compression, however, this variable was static to each of these codepaths. Two of them read the pack.compression configuration variable, using core.compression as the default, and one of them also allowed overriding it from the command line. The other codepath in bulk-checkin did not pay any attention to the configuration. Unify the configuration parsing to git_default_config(), where we implement the parsing of core.loosecompression and core.compression and make the former override the latter, by moving code to parse pack.compression and also allow core.compression to give default to this variable. Signed-off-by: Junio C Hamano <gitster@pobox.com>
45 lines
1.1 KiB
Bash
Executable file
45 lines
1.1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='pack-object compression configuration'
|
|
|
|
. ./test-lib.sh
|
|
|
|
# This should be moved to test-lib.sh together with the
|
|
# copy in t0021 after both topics have graduated to 'master'.
|
|
file_size () {
|
|
perl -e 'print -s $ARGV[0]' "$1"
|
|
}
|
|
|
|
test_expect_success setup '
|
|
printf "%2000000s" X |
|
|
git hash-object -w --stdin >object-name &&
|
|
# make sure it resulted in a loose object
|
|
ob=$(sed -e "s/\(..\).*/\1/" object-name) &&
|
|
ject=$(sed -e "s/..\(.*\)/\1/" object-name) &&
|
|
test -f .git/objects/$ob/$ject
|
|
'
|
|
|
|
while read expect config
|
|
do
|
|
test_expect_success "pack-objects with $config" '
|
|
test_when_finished "rm -f pack-*.*" &&
|
|
git $config pack-objects pack <object-name &&
|
|
sz=$(file_size pack-*.pack) &&
|
|
case "$expect" in
|
|
small) test "$sz" -le 100000 ;;
|
|
large) test "$sz" -ge 100000 ;;
|
|
esac
|
|
'
|
|
done <<\EOF
|
|
large -c core.compression=0
|
|
small -c core.compression=9
|
|
large -c core.compression=0 -c pack.compression=0
|
|
large -c core.compression=9 -c pack.compression=0
|
|
small -c core.compression=0 -c pack.compression=9
|
|
small -c core.compression=9 -c pack.compression=9
|
|
large -c pack.compression=0
|
|
small -c pack.compression=9
|
|
EOF
|
|
|
|
test_done
|