t9210, t9211: disable GIT_TEST_SPLIT_INDEX for scalar clone tests

index.skipHash (Scalar default) and split-index are incompatible:
the shared index gets a null OID when skipHash skips computing the
hash, and the null OID causes the shared index to not be loaded on
re-read.  This triggers a BUG assertion in fsmonitor when the
fsmonitor_dirty bitmap references more entries than the (now empty)
index has.

Disable GIT_TEST_SPLIT_INDEX in the scalar clone tests that hit
this: tests 12, 13, and 22 in t9210 (matching the existing
workaround in test 16), and all of t9211 (every test does scalar
clone).

Signed-off-by: Paul Tarjan <github@paulisageek.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
main
Paul Tarjan 2026-04-15 13:27:25 +00:00 committed by Junio C Hamano
parent 68cb7f9e92
commit 7cce609e08
2 changed files with 11 additions and 0 deletions

View File

@ -152,6 +152,10 @@ test_expect_success 'set up repository to clone' '
'

test_expect_success 'scalar clone' '
# index.skipHash (Scalar default) and GIT_TEST_SPLIT_INDEX are
# incompatible: the shared index gets a null OID and fails to
# load on re-read.
sane_unset GIT_TEST_SPLIT_INDEX &&
second=$(git rev-parse --verify second:second.t) &&
scalar clone "file://$(pwd)" cloned --single-branch &&
(
@ -182,6 +186,7 @@ test_expect_success 'scalar clone' '
'

test_expect_success 'scalar clone --no-... opts' '
sane_unset GIT_TEST_SPLIT_INDEX &&
# Note: redirect stderr always to avoid having a verbose test
# run result in a difference in the --[no-]progress option.
GIT_TRACE2_EVENT="$(pwd)/no-opt-trace" scalar clone \
@ -307,6 +312,7 @@ test_expect_success '`scalar [...] <dir>` errors out when dir is missing' '

SQ="'"
test_expect_success UNZIP 'scalar diagnose' '
sane_unset GIT_TEST_SPLIT_INDEX &&
scalar clone "file://$(pwd)" cloned --single-branch &&
git repack &&
echo "$(pwd)/.git/objects/" >>cloned/src/.git/objects/info/alternates &&

View File

@ -8,6 +8,11 @@ test_description='test the `scalar clone` subcommand'
GIT_TEST_MAINT_SCHEDULER="crontab:test-tool crontab cron.txt,launchctl:true,schtasks:true"
export GIT_TEST_MAINT_SCHEDULER

# index.skipHash (Scalar default) and GIT_TEST_SPLIT_INDEX are
# incompatible: the shared index gets a null OID and fails to
# load on re-read. Every test here uses scalar clone.
sane_unset GIT_TEST_SPLIT_INDEX

test_expect_success 'set up repository to clone' '
rm -rf .git &&
git init to-clone &&