f4609b896f
This also bumps the stable nixpkgs to 20.09 as of 2020-11-21, because there is some breakage in the git build related to the netrc credentials helper which someone has taken care of in nixpkgs. The stable channel is not used for anything other than git, so this should be fine. Change-Id: I3575a19dab09e1e9556cf8231d717de9890484fb
100 lines
2.4 KiB
Bash
Executable file
100 lines
2.4 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='index file specific tests'
|
|
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success 'setup' '
|
|
echo 1 >a
|
|
'
|
|
|
|
test_expect_success 'bogus GIT_INDEX_VERSION issues warning' '
|
|
(
|
|
rm -f .git/index &&
|
|
GIT_INDEX_VERSION=2bogus &&
|
|
export GIT_INDEX_VERSION &&
|
|
git add a 2>&1 | sed "s/[0-9]//" >actual.err &&
|
|
sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
|
|
warning: GIT_INDEX_VERSION set, but the value is invalid.
|
|
Using version Z
|
|
EOF
|
|
test_i18ncmp expect.err actual.err
|
|
)
|
|
'
|
|
|
|
test_expect_success 'out of bounds GIT_INDEX_VERSION issues warning' '
|
|
(
|
|
rm -f .git/index &&
|
|
GIT_INDEX_VERSION=1 &&
|
|
export GIT_INDEX_VERSION &&
|
|
git add a 2>&1 | sed "s/[0-9]//" >actual.err &&
|
|
sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
|
|
warning: GIT_INDEX_VERSION set, but the value is invalid.
|
|
Using version Z
|
|
EOF
|
|
test_i18ncmp expect.err actual.err
|
|
)
|
|
'
|
|
|
|
test_expect_success 'no warning with bogus GIT_INDEX_VERSION and existing index' '
|
|
(
|
|
GIT_INDEX_VERSION=1 &&
|
|
export GIT_INDEX_VERSION &&
|
|
git add a 2>actual.err &&
|
|
test_must_be_empty actual.err
|
|
)
|
|
'
|
|
|
|
test_expect_success 'out of bounds index.version issues warning' '
|
|
(
|
|
sane_unset GIT_INDEX_VERSION &&
|
|
rm -f .git/index &&
|
|
git config --add index.version 1 &&
|
|
git add a 2>&1 | sed "s/[0-9]//" >actual.err &&
|
|
sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
|
|
warning: index.version set, but the value is invalid.
|
|
Using version Z
|
|
EOF
|
|
test_i18ncmp expect.err actual.err
|
|
)
|
|
'
|
|
|
|
test_index_version () {
|
|
INDEX_VERSION_CONFIG=$1 &&
|
|
FEATURE_MANY_FILES=$2 &&
|
|
ENV_VAR_VERSION=$3
|
|
EXPECTED_OUTPUT_VERSION=$4 &&
|
|
(
|
|
rm -f .git/index &&
|
|
rm -f .git/config &&
|
|
if test "$INDEX_VERSION_CONFIG" -ne 0
|
|
then
|
|
git config --add index.version $INDEX_VERSION_CONFIG
|
|
fi &&
|
|
git config --add feature.manyFiles $FEATURE_MANY_FILES
|
|
if test "$ENV_VAR_VERSION" -ne 0
|
|
then
|
|
GIT_INDEX_VERSION=$ENV_VAR_VERSION &&
|
|
export GIT_INDEX_VERSION
|
|
else
|
|
unset GIT_INDEX_VERSION
|
|
fi &&
|
|
git add a 2>&1 &&
|
|
echo $EXPECTED_OUTPUT_VERSION >expect &&
|
|
test-tool index-version <.git/index >actual &&
|
|
test_cmp expect actual
|
|
)
|
|
}
|
|
|
|
test_expect_success 'index version config precedence' '
|
|
test_index_version 0 false 0 2 &&
|
|
test_index_version 2 false 0 2 &&
|
|
test_index_version 3 false 0 2 &&
|
|
test_index_version 4 false 0 4 &&
|
|
test_index_version 2 false 4 4 &&
|
|
test_index_version 2 true 0 2 &&
|
|
test_index_version 0 true 0 4 &&
|
|
test_index_version 0 true 2 2
|
|
'
|
|
|
|
test_done
|